Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- MD5Cng.cs
- PagerSettings.cs
- AssemblyLoader.cs
- GenericEnumerator.cs
- Size3DConverter.cs
- ISFTagAndGuidCache.cs
- JavaScriptObjectDeserializer.cs
- externdll.cs
- PictureBox.cs
- Marshal.cs
- ListView.cs
- EventLogEntry.cs
- VisualStyleElement.cs
- TemplateBuilder.cs
- DocumentPageView.cs
- CharacterBufferReference.cs
- ContentPresenter.cs
- AdRotator.cs
- MediaPlayer.cs
- IListConverters.cs
- StyleBamlTreeBuilder.cs
- ComAdminWrapper.cs
- DocumentSequence.cs
- QualifiedId.cs
- HwndAppCommandInputProvider.cs
- EditingCommands.cs
- ToolTipService.cs
- BrushMappingModeValidation.cs
- AttributeEmitter.cs
- KeyedCollection.cs
- ToolStripMenuItemCodeDomSerializer.cs
- ProjectionPathBuilder.cs
- LocalBuilder.cs
- GeneralTransformGroup.cs
- DataGridLinkButton.cs
- XmlNamespaceMappingCollection.cs
- BookmarkScopeHandle.cs
- Int32AnimationBase.cs
- XmlSchemaSimpleContent.cs
- ListBoxChrome.cs
- Repeater.cs
- PolicyValidationException.cs
- PropertyGridEditorPart.cs
- Keywords.cs
- Interlocked.cs
- FrameworkElementAutomationPeer.cs
- FileFormatException.cs
- MasterPageBuildProvider.cs
- ConditionalAttribute.cs
- HitTestWithPointDrawingContextWalker.cs
- FormatVersion.cs
- TextSyndicationContentKindHelper.cs
- DynamicValueConverter.cs
- DataGridViewAccessibleObject.cs
- Maps.cs
- PrimitiveCodeDomSerializer.cs
- PackagePartCollection.cs
- AndMessageFilterTable.cs
- PreProcessor.cs
- TextPattern.cs
- RoleGroup.cs
- ContainerAction.cs
- Compiler.cs
- SerializationEventsCache.cs
- Button.cs
- TextProperties.cs
- PointLight.cs
- Matrix.cs
- EntityContainerEntitySet.cs
- WebPartConnectionCollection.cs
- InternalBase.cs
- ViewStateException.cs
- InputBuffer.cs
- WeakHashtable.cs
- ManipulationVelocities.cs
- CollectionViewSource.cs
- WebPartPersonalization.cs
- MemoryFailPoint.cs
- ListViewDataItem.cs
- Splitter.cs
- TextWriterTraceListener.cs
- CLRBindingWorker.cs
- WebAdminConfigurationHelper.cs
- WebBrowserBase.cs
- versioninfo.cs
- EditorServiceContext.cs
- UnsafeNativeMethods.cs
- OptimisticConcurrencyException.cs
- BitSet.cs
- ExpressionBinding.cs
- ListView.cs
- TableTextElementCollectionInternal.cs
- ArrayTypeMismatchException.cs
- BoundsDrawingContextWalker.cs
- SafeNativeMethods.cs
- ReversePositionQuery.cs
- ArraySegment.cs
- DrawListViewColumnHeaderEventArgs.cs
- CultureSpecificStringDictionary.cs
- PieceNameHelper.cs