Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- BasicViewGenerator.cs
- SmtpNtlmAuthenticationModule.cs
- WindowsUpDown.cs
- SessionState.cs
- SourceChangedEventArgs.cs
- DesignOnlyAttribute.cs
- DesignSurface.cs
- LinqDataView.cs
- CryptoProvider.cs
- DataGridSortCommandEventArgs.cs
- PerfCounterSection.cs
- WmfPlaceableFileHeader.cs
- ComponentDesigner.cs
- DataGridState.cs
- DesignerSerializationVisibilityAttribute.cs
- FontStyle.cs
- ForwardPositionQuery.cs
- GenerateScriptTypeAttribute.cs
- DeploymentSection.cs
- Logging.cs
- DataGridViewCellPaintingEventArgs.cs
- TextSelection.cs
- Trace.cs
- EmptyControlCollection.cs
- CachedPathData.cs
- ScrollChangedEventArgs.cs
- PropertyPushdownHelper.cs
- ComponentRenameEvent.cs
- LineProperties.cs
- CommandHelpers.cs
- CompositeActivityTypeDescriptor.cs
- LiteralLink.cs
- PersonalizationProvider.cs
- DataGridTablesFactory.cs
- SessionEndingCancelEventArgs.cs
- MasterPageBuildProvider.cs
- SessionSwitchEventArgs.cs
- NetworkInformationException.cs
- DesignBindingPicker.cs
- CurrencyManager.cs
- CodeTypeConstructor.cs
- SpellerInterop.cs
- CompilerWrapper.cs
- TextModifierScope.cs
- CountAggregationOperator.cs
- DrawingImage.cs
- EmptyWithCancelationCheckWorkItem.cs
- PolyQuadraticBezierSegment.cs
- WebPartDesigner.cs
- DebugTracing.cs
- AdapterUtil.cs
- XsltCompileContext.cs
- PropertyGridEditorPart.cs
- RegexWriter.cs
- SafeThemeHandle.cs
- InputBindingCollection.cs
- AsymmetricSecurityBindingElement.cs
- PropertyGridView.cs
- QueryStringParameter.cs
- ObjectListCommand.cs
- XPathNodeInfoAtom.cs
- EditorPartCollection.cs
- CollectionViewGroupRoot.cs
- SortQuery.cs
- WindowsPrincipal.cs
- ListItemsCollectionEditor.cs
- AmbientProperties.cs
- IdleTimeoutMonitor.cs
- EditorPartChrome.cs
- QueryCacheEntry.cs
- EmptyEnumerator.cs
- XmlWhitespace.cs
- ResourceProperty.cs
- ScrollChrome.cs
- DataGridCellClipboardEventArgs.cs
- MetabaseSettingsIis7.cs
- SystemEvents.cs
- ByteStreamGeometryContext.cs
- CodeLabeledStatement.cs
- Clock.cs
- RtfNavigator.cs
- XPathDocumentNavigator.cs
- WindowsSolidBrush.cs
- HtmlInputHidden.cs
- DocumentPageViewAutomationPeer.cs
- Size3D.cs
- SettingsBindableAttribute.cs
- OdbcConnection.cs
- Rect3DConverter.cs
- FixUp.cs
- DynamicPropertyHolder.cs
- Cursors.cs
- ToolTipAutomationPeer.cs
- PTUtility.cs
- TagPrefixAttribute.cs
- PKCS1MaskGenerationMethod.cs
- DSASignatureDeformatter.cs
- BaseParagraph.cs
- PathStreamGeometryContext.cs
- CryptoApi.cs