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
- TargetControlTypeAttribute.cs
- PermissionToken.cs
- ProviderConnectionPointCollection.cs
- OptimizedTemplateContentHelper.cs
- RefExpr.cs
- DesignTimeValidationFeature.cs
- ColorPalette.cs
- StreamUpdate.cs
- Panel.cs
- InheritanceContextHelper.cs
- SafePointer.cs
- MouseWheelEventArgs.cs
- Package.cs
- VectorKeyFrameCollection.cs
- XmlEncodedRawTextWriter.cs
- CodeCompileUnit.cs
- MobileContainerDesigner.cs
- ValueConversionAttribute.cs
- TreePrinter.cs
- DataGridTemplateColumn.cs
- DataColumnMappingCollection.cs
- UpdateEventArgs.cs
- FormClosingEvent.cs
- PeerNameRecord.cs
- PseudoWebRequest.cs
- FeatureSupport.cs
- MulticastNotSupportedException.cs
- InputScopeManager.cs
- ModelVisual3D.cs
- ProgressChangedEventArgs.cs
- MethodImplAttribute.cs
- TypedElement.cs
- WebPartEditorApplyVerb.cs
- MediaPlayerState.cs
- LifetimeServices.cs
- FilteredAttributeCollection.cs
- DataGridViewSelectedCellCollection.cs
- MultiDataTrigger.cs
- TargetException.cs
- CqlLexerHelpers.cs
- XmlAttributeOverrides.cs
- FontFamilyConverter.cs
- FixedPosition.cs
- PowerModeChangedEventArgs.cs
- HashHelper.cs
- CompilationSection.cs
- TraceData.cs
- SessionEndingEventArgs.cs
- DataColumnMappingCollection.cs
- FunctionImportMapping.cs
- BitmapEffect.cs
- COM2Properties.cs
- QueryExpr.cs
- KnownBoxes.cs
- Section.cs
- FunctionMappingTranslator.cs
- ObjectSet.cs
- ImplicitInputBrush.cs
- CodeDomDesignerLoader.cs
- StaticResourceExtension.cs
- GridPattern.cs
- DesignerRegionCollection.cs
- StylusEditingBehavior.cs
- ScriptingAuthenticationServiceSection.cs
- IndentTextWriter.cs
- UrlAuthFailedErrorFormatter.cs
- AnimationClockResource.cs
- webclient.cs
- TextElementEnumerator.cs
- DesigntimeLicenseContext.cs
- SystemColors.cs
- QilStrConcatenator.cs
- SessionStateModule.cs
- SoapIgnoreAttribute.cs
- Currency.cs
- NetworkInformationException.cs
- Directory.cs
- XPathArrayIterator.cs
- DbConnectionHelper.cs
- GrammarBuilderPhrase.cs
- TimeSpanValidatorAttribute.cs
- Membership.cs
- EdmItemCollection.OcAssemblyCache.cs
- BlobPersonalizationState.cs
- _MultipleConnectAsync.cs
- LazyTextWriterCreator.cs
- FactoryRecord.cs
- TimelineClockCollection.cs
- StatusStrip.cs
- BindToObject.cs
- StrongNamePublicKeyBlob.cs
- CodeCastExpression.cs
- SqlDataRecord.cs
- XamlTypeMapper.cs
- HealthMonitoringSectionHelper.cs
- SettingsAttributeDictionary.cs
- HtmlTable.cs
- DateTimeSerializationSection.cs
- WebPartCollection.cs
- IdentityReference.cs