Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / DeferredReference.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CacheOutputQuery.cs
- SingleAnimation.cs
- DeclaredTypeValidator.cs
- Scripts.cs
- HtmlImageAdapter.cs
- NotifyParentPropertyAttribute.cs
- SafeProcessHandle.cs
- autovalidator.cs
- DataSourceControl.cs
- StylusPointDescription.cs
- HtmlCalendarAdapter.cs
- LinqDataSourceStatusEventArgs.cs
- WebServiceEndpoint.cs
- RedirectionProxy.cs
- BitmapDownload.cs
- MessageDescriptionCollection.cs
- HttpApplication.cs
- CodeCatchClause.cs
- contentDescriptor.cs
- BuildProviderCollection.cs
- TdsValueSetter.cs
- UIPermission.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- AjaxFrameworkAssemblyAttribute.cs
- HttpModuleActionCollection.cs
- HttpListenerElement.cs
- SqlConnectionPoolGroupProviderInfo.cs
- TextRenderer.cs
- TypeDelegator.cs
- QilStrConcat.cs
- commandenforcer.cs
- contentDescriptor.cs
- ReadWriteObjectLock.cs
- Drawing.cs
- PixelFormatConverter.cs
- CompilerResults.cs
- RuntimeHandles.cs
- HtmlControlPersistable.cs
- ButtonChrome.cs
- BevelBitmapEffect.cs
- SqlXml.cs
- SqlDataSourceCommandEventArgs.cs
- DesignRelation.cs
- Monitor.cs
- JournalEntryStack.cs
- ReturnType.cs
- ObjectTag.cs
- FormViewModeEventArgs.cs
- MergeLocalizationDirectives.cs
- RC2.cs
- TrackBarRenderer.cs
- DataListItem.cs
- ApplicationTrust.cs
- TextStore.cs
- EndpointFilterProvider.cs
- XmlSerializationReader.cs
- SqlParameterizer.cs
- DynamicRendererThreadManager.cs
- WebSysDisplayNameAttribute.cs
- ParameterCollection.cs
- EmptyControlCollection.cs
- EntityDataSourceView.cs
- DataBindEngine.cs
- XmlText.cs
- CodeAttributeDeclaration.cs
- TraceContextRecord.cs
- Paragraph.cs
- x509store.cs
- NestPullup.cs
- DataTableClearEvent.cs
- ReverseQueryOperator.cs
- SynchronizedCollection.cs
- comcontractssection.cs
- UnionExpr.cs
- MetabaseServerConfig.cs
- DetectRunnableInstancesTask.cs
- AttachedAnnotationChangedEventArgs.cs
- VolatileEnlistmentMultiplexing.cs
- ContainerAction.cs
- Helper.cs
- X509Certificate.cs
- UDPClient.cs
- DesignerRegionCollection.cs
- FlowDocumentReader.cs
- ImageDrawing.cs
- StrokeNodeData.cs
- DataServiceCollectionOfT.cs
- WindowsGraphics.cs
- MetadataItemEmitter.cs
- TabItemWrapperAutomationPeer.cs
- DataGridViewColumnEventArgs.cs
- DiagnosticTrace.cs
- TextTreeFixupNode.cs
- KeyValuePair.cs
- MultiPageTextView.cs
- CodeCatchClause.cs
- HtmlFormWrapper.cs
- SkipStoryboardToFill.cs
- ParameterToken.cs
- DynamicPropertyHolder.cs