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
- BinaryCommonClasses.cs
- ConstrainedGroup.cs
- HashMembershipCondition.cs
- TiffBitmapDecoder.cs
- DataColumn.cs
- IISUnsafeMethods.cs
- OleDbTransaction.cs
- ResourcePermissionBaseEntry.cs
- XmlSchemaProviderAttribute.cs
- CryptoConfig.cs
- ServerProtocol.cs
- ExpressionBinding.cs
- EncoderNLS.cs
- CompilerParameters.cs
- TrackingServices.cs
- DataServices.cs
- ChildDocumentBlock.cs
- PropertyReferenceSerializer.cs
- Base64Decoder.cs
- SqlMetaData.cs
- UniqueIdentifierService.cs
- SafeNativeMethods.cs
- EndPoint.cs
- DataKeyArray.cs
- SocketException.cs
- _Events.cs
- PropertyCondition.cs
- AudioFileOut.cs
- FreezableCollection.cs
- GridItemPattern.cs
- Helpers.cs
- VirtualPathProvider.cs
- AssociationTypeEmitter.cs
- NativeMethods.cs
- PrintDialog.cs
- WindowsPen.cs
- ControlUtil.cs
- RangeBase.cs
- ProfileEventArgs.cs
- VersionedStreamOwner.cs
- CompositeCollection.cs
- RequestResizeEvent.cs
- Regex.cs
- TextLineBreak.cs
- TableLayoutPanel.cs
- TrailingSpaceComparer.cs
- ViewStateModeByIdAttribute.cs
- TextEndOfLine.cs
- SyntaxCheck.cs
- HeaderCollection.cs
- UrlAuthorizationModule.cs
- ParserExtension.cs
- RuleDefinitions.cs
- versioninfo.cs
- QilLoop.cs
- SharedTcpTransportManager.cs
- Membership.cs
- NameObjectCollectionBase.cs
- SHA256Managed.cs
- GridViewUpdatedEventArgs.cs
- ScrollData.cs
- MethodSignatureGenerator.cs
- HttpGetProtocolImporter.cs
- ActivityExecutor.cs
- NumberFormatInfo.cs
- DataGridViewDataConnection.cs
- DataBoundControlParameterTarget.cs
- XmlAtomicValue.cs
- HotSpot.cs
- DefaultExpressionVisitor.cs
- SqlStatistics.cs
- ValueCollectionParameterReader.cs
- GroupBoxRenderer.cs
- SelectManyQueryOperator.cs
- HtmlWindowCollection.cs
- RelatedCurrencyManager.cs
- EdmComplexTypeAttribute.cs
- VScrollBar.cs
- PropertyToken.cs
- EnterpriseServicesHelper.cs
- XmlIgnoreAttribute.cs
- WsdlImporterElementCollection.cs
- ActivityDesigner.cs
- DecoderExceptionFallback.cs
- HttpCacheVaryByContentEncodings.cs
- WebBrowserBase.cs
- MimeTypePropertyAttribute.cs
- StatusBarAutomationPeer.cs
- SendKeys.cs
- QuotedStringFormatReader.cs
- InvokePattern.cs
- Normalization.cs
- XmlAutoDetectWriter.cs
- FilteredDataSetHelper.cs
- MailMessageEventArgs.cs
- SQLBytesStorage.cs
- HostedTransportConfigurationBase.cs
- Line.cs
- FullTextState.cs
- InfoCardProofToken.cs