Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Base / System / Windows / DeferredReference.cs / 1 / DeferredReference.cs
//---------------------------------------------------------------------------- // // File: DeferredReference.cs // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Proxy object passed to the property system to delay load values. // //--------------------------------------------------------------------------- namespace System.Windows { using MS.Internal.WindowsBase; // FriendAccessAllowed // Proxy object passed to the property system to delay load values. // // The property system will make a GetValue callback (dereferencing the // reference) inside DependencyProperty.GetValue calls, or before // coercion callbacks to derived classes. // // DeferredReference instances are passed directly to ValidateValue // callbacks (which always go to the DependencyProperty owner class), // and also to CoerceValue callbacks on the owner class only. THEREFORE, // IT IS [FriendAccessAllowed] // Built into Base, also used by Core & Framework. internal abstract class DeferredReference { //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Deferences a property value on demand. internal abstract object GetValue(BaseValueSourceInternal valueSource); // Gets the type of the value it represents internal abstract Type GetValueType(); #endregion Internal Methods } internal class DeferredMutableDefaultReference : DeferredReference { #region Constructor internal DeferredMutableDefaultReference(PropertyMetadata metadata, DependencyObject d, DependencyProperty dp) { _sourceObject = d; _sourceProperty = dp; _sourceMetadata = metadata; } #endregion Constructor #region Methods internal override object GetValue(BaseValueSourceInternal valueSource) { return _sourceMetadata.GetDefaultValue(_sourceObject, _sourceProperty); } // Gets the type of the value it represents internal override Type GetValueType() { return _sourceProperty.PropertyType; } #endregion Methods #region Properties internal PropertyMetadata SourceMetadata { get { return _sourceMetadata; } } protected DependencyObject SourceObject { get { return _sourceObject; } } protected DependencyProperty SourceProperty { get { return _sourceProperty; } } #endregion Properties #region Data private readonly PropertyMetadata _sourceMetadata; private readonly DependencyObject _sourceObject; private readonly DependencyProperty _sourceProperty; #endregion Data } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // File: DeferredReference.cs // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Proxy object passed to the property system to delay load values. // //--------------------------------------------------------------------------- namespace System.Windows { using MS.Internal.WindowsBase; // FriendAccessAllowed // Proxy object passed to the property system to delay load values. // // The property system will make a GetValue callback (dereferencing the // reference) inside DependencyProperty.GetValue calls, or before // coercion callbacks to derived classes. // // DeferredReference instances are passed directly to ValidateValue // callbacks (which always go to the DependencyProperty owner class), // and also to CoerceValue callbacks on the owner class only. THEREFORE, // IT IS [FriendAccessAllowed] // Built into Base, also used by Core & Framework. internal abstract class DeferredReference { //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Deferences a property value on demand. internal abstract object GetValue(BaseValueSourceInternal valueSource); // Gets the type of the value it represents internal abstract Type GetValueType(); #endregion Internal Methods } internal class DeferredMutableDefaultReference : DeferredReference { #region Constructor internal DeferredMutableDefaultReference(PropertyMetadata metadata, DependencyObject d, DependencyProperty dp) { _sourceObject = d; _sourceProperty = dp; _sourceMetadata = metadata; } #endregion Constructor #region Methods internal override object GetValue(BaseValueSourceInternal valueSource) { return _sourceMetadata.GetDefaultValue(_sourceObject, _sourceProperty); } // Gets the type of the value it represents internal override Type GetValueType() { return _sourceProperty.PropertyType; } #endregion Methods #region Properties internal PropertyMetadata SourceMetadata { get { return _sourceMetadata; } } protected DependencyObject SourceObject { get { return _sourceObject; } } protected DependencyProperty SourceProperty { get { return _sourceProperty; } } #endregion Properties #region Data private readonly PropertyMetadata _sourceMetadata; private readonly DependencyObject _sourceObject; private readonly DependencyProperty _sourceProperty; #endregion Data } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- hresults.cs
- CallTemplateAction.cs
- NumberAction.cs
- Win32.cs
- TextEditorParagraphs.cs
- NumberSubstitution.cs
- ChangeProcessor.cs
- ScrollBar.cs
- SystemDropShadowChrome.cs
- FaultConverter.cs
- OleStrCAMarshaler.cs
- ImageAutomationPeer.cs
- TraceUtils.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- EventSinkActivity.cs
- TitleStyle.cs
- DataServiceExpressionVisitor.cs
- CompareValidator.cs
- StreamGeometry.cs
- ScrollableControlDesigner.cs
- ResolveNextArgumentWorkItem.cs
- BrowserCapabilitiesFactoryBase.cs
- WeakEventManager.cs
- XmlValueConverter.cs
- OuterGlowBitmapEffect.cs
- SelectionPatternIdentifiers.cs
- BinaryMessageEncoder.cs
- PersonalizationState.cs
- UrlParameterReader.cs
- AudioException.cs
- ErrorTableItemStyle.cs
- DataGridViewSelectedCellCollection.cs
- SoapCodeExporter.cs
- SplitContainer.cs
- Application.cs
- VectorValueSerializer.cs
- VariableQuery.cs
- TemplateManager.cs
- ConsoleKeyInfo.cs
- CharacterHit.cs
- RemotingServices.cs
- ToolStripRendererSwitcher.cs
- EventProperty.cs
- CodeGenHelper.cs
- _DomainName.cs
- ModifierKeysConverter.cs
- ViewGenerator.cs
- DrawingServices.cs
- DecoderBestFitFallback.cs
- ConnectionStringsExpressionBuilder.cs
- DataMember.cs
- SizeChangedInfo.cs
- ExtensionElementCollection.cs
- UdpDiscoveryEndpointElement.cs
- PersonalizationAdministration.cs
- DESCryptoServiceProvider.cs
- Formatter.cs
- AttributeEmitter.cs
- Connector.cs
- DefaultIfEmptyQueryOperator.cs
- MemoryPressure.cs
- SecurityDocument.cs
- BuildProvider.cs
- ClientSideQueueItem.cs
- SafeArrayRankMismatchException.cs
- InvalidCastException.cs
- RuntimeConfigLKG.cs
- Menu.cs
- StsCommunicationException.cs
- FixUp.cs
- InternalPermissions.cs
- QilXmlReader.cs
- Header.cs
- WebResourceAttribute.cs
- Point3DValueSerializer.cs
- DebugControllerThread.cs
- XmlSchemaExporter.cs
- ManagedFilter.cs
- MessageAction.cs
- DatePicker.cs
- DefaultWorkflowLoaderService.cs
- ContainerUIElement3D.cs
- CollectionsUtil.cs
- Composition.cs
- OutputCacheSettings.cs
- SafeNativeMethods.cs
- HtmlPhoneCallAdapter.cs
- ScriptDescriptor.cs
- PrimitiveXmlSerializers.cs
- IxmlLineInfo.cs
- ValueConversionAttribute.cs
- VisualTreeUtils.cs
- DefaultExpressionVisitor.cs
- ItemAutomationPeer.cs
- Addressing.cs
- RegexMatchCollection.cs
- TransformerInfoCollection.cs
- FileAuthorizationModule.cs
- WSHttpBindingBaseElement.cs
- WebPartVerb.cs