Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GZipDecoder.cs
- AnimationClock.cs
- MetadataPropertyCollection.cs
- userdatakeys.cs
- BackgroundWorker.cs
- ContentHostHelper.cs
- ACE.cs
- ISCIIEncoding.cs
- InputScopeNameConverter.cs
- WebConfigurationHost.cs
- webclient.cs
- SettingsPropertyNotFoundException.cs
- DataGridViewRowsAddedEventArgs.cs
- TextEditorCopyPaste.cs
- FrameworkElementFactoryMarkupObject.cs
- InternalBase.cs
- FormViewActionList.cs
- XmlStreamNodeWriter.cs
- QilLiteral.cs
- DelimitedListTraceListener.cs
- ThreadAbortException.cs
- TdsValueSetter.cs
- PropertyBuilder.cs
- ProfileService.cs
- AttachedPropertyBrowsableAttribute.cs
- LicenseException.cs
- CodeGotoStatement.cs
- NotifyParentPropertyAttribute.cs
- AmbientValueAttribute.cs
- NumericUpDown.cs
- ImpersonationContext.cs
- HtmlInputPassword.cs
- HttpValueCollection.cs
- SystemInformation.cs
- TreeViewHitTestInfo.cs
- SimpleType.cs
- FormView.cs
- EntityUtil.cs
- QueryOutputWriter.cs
- TableItemStyle.cs
- BitConverter.cs
- ReadWriteObjectLock.cs
- SessionIDManager.cs
- GPRECTF.cs
- DisplayInformation.cs
- Item.cs
- GeneralTransform.cs
- WindowsPrincipal.cs
- CSharpCodeProvider.cs
- SoapReflectionImporter.cs
- SessionIDManager.cs
- UriParserTemplates.cs
- JsonQNameDataContract.cs
- MetricEntry.cs
- ApplicationProxyInternal.cs
- basemetadatamappingvisitor.cs
- WindowsScrollBar.cs
- SqlDataReaderSmi.cs
- Html32TextWriter.cs
- SelectionHighlightInfo.cs
- DesignerRegionCollection.cs
- MetaModel.cs
- CommandHelpers.cs
- HashCodeCombiner.cs
- RowToParametersTransformer.cs
- TraceSwitch.cs
- ReferentialConstraintRoleElement.cs
- UIElementHelper.cs
- ThreadPool.cs
- OdbcException.cs
- PromptEventArgs.cs
- IgnoreFileBuildProvider.cs
- StoragePropertyMapping.cs
- RequestCachePolicyConverter.cs
- DecimalAnimation.cs
- ListView.cs
- CorrelationManager.cs
- altserialization.cs
- RotateTransform.cs
- TabItemAutomationPeer.cs
- GridSplitterAutomationPeer.cs
- MarkupCompilePass1.cs
- wgx_exports.cs
- TimeoutTimer.cs
- ObjectItemCachedAssemblyLoader.cs
- SpeechSeg.cs
- ConfigurationManagerInternalFactory.cs
- documentsequencetextpointer.cs
- ProfileService.cs
- MarkupExtensionParser.cs
- DependentList.cs
- WebPartUtil.cs
- ContextProperty.cs
- MethodImplAttribute.cs
- CompensationParticipant.cs
- _NestedMultipleAsyncResult.cs
- JoinGraph.cs
- MemberExpressionHelper.cs
- PseudoWebRequest.cs
- LicenseManager.cs