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
- ScrollViewer.cs
- AssemblyBuilder.cs
- FontFamilyIdentifier.cs
- StatusBar.cs
- SelectionListComponentEditor.cs
- DBParameter.cs
- MetadataException.cs
- DataGridColumnStyleMappingNameEditor.cs
- TabletDevice.cs
- ListSortDescription.cs
- BevelBitmapEffect.cs
- AlignmentXValidation.cs
- GeometryCollection.cs
- serverconfig.cs
- BitmapEffectGroup.cs
- RuleRefElement.cs
- MultiView.cs
- TypeNameConverter.cs
- WorkflowApplicationTerminatedException.cs
- PartManifestEntry.cs
- FormatException.cs
- ConfigXmlSignificantWhitespace.cs
- MenuAdapter.cs
- TextEncodedRawTextWriter.cs
- EntityDataReader.cs
- DataGridViewLinkCell.cs
- PropertyValueChangedEvent.cs
- SingleObjectCollection.cs
- ColumnCollectionEditor.cs
- recordstatefactory.cs
- WsatStrings.cs
- MessageDecoder.cs
- ContextInformation.cs
- OleDbConnectionInternal.cs
- ViewCellSlot.cs
- CompositionTarget.cs
- DocumentOrderComparer.cs
- unitconverter.cs
- DesignerLinkAdapter.cs
- NullableConverter.cs
- ImageBrush.cs
- EnumDataContract.cs
- DummyDataSource.cs
- XmlSchemaSimpleContentExtension.cs
- DataColumnSelectionConverter.cs
- AuthorizationRuleCollection.cs
- HttpWebResponse.cs
- SystemKeyConverter.cs
- RequestCachingSection.cs
- baseaxisquery.cs
- XmlValidatingReaderImpl.cs
- SecurityHelper.cs
- ReadContentAsBinaryHelper.cs
- Animatable.cs
- precedingquery.cs
- _UriSyntax.cs
- ElementUtil.cs
- ListCollectionView.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- InputScope.cs
- ProxyDataContractResolver.cs
- Brush.cs
- SamlConstants.cs
- CodeIdentifiers.cs
- ListParaClient.cs
- CollectionBase.cs
- DefinitionBase.cs
- _OSSOCK.cs
- Buffer.cs
- TdsParameterSetter.cs
- ObjectDataProvider.cs
- DtcInterfaces.cs
- CharacterMetricsDictionary.cs
- BasicKeyConstraint.cs
- UIHelper.cs
- ModuleConfigurationInfo.cs
- WebBrowserNavigatingEventHandler.cs
- PackWebRequest.cs
- TextTreeExtractElementUndoUnit.cs
- CollectionChangeEventArgs.cs
- X509LogoTypeExtension.cs
- HttpListenerContext.cs
- Gdiplus.cs
- XmlSignatureProperties.cs
- _emptywebproxy.cs
- DragEventArgs.cs
- PublisherIdentityPermission.cs
- RtfToXamlLexer.cs
- MergePropertyDescriptor.cs
- SoapSchemaMember.cs
- LicenseProviderAttribute.cs
- DependencyPropertyDescriptor.cs
- MenuCommandsChangedEventArgs.cs
- DesignerToolStripControlHost.cs
- ProjectionCamera.cs
- SqlProviderManifest.cs
- WindowsClaimSet.cs
- HttpRequestMessageProperty.cs
- AuthenticodeSignatureInformation.cs
- SecurityTokenValidationException.cs