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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Utility.cs
- Root.cs
- XXXOnTypeBuilderInstantiation.cs
- XmlConvert.cs
- DbConnectionPoolCounters.cs
- XmlSchemaValidator.cs
- UrlPath.cs
- ToolBarDesigner.cs
- RSAOAEPKeyExchangeFormatter.cs
- EntityDataSourceView.cs
- ToolStripPanelSelectionBehavior.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- InternalTransaction.cs
- TableSectionStyle.cs
- GPRECTF.cs
- FloaterBaseParagraph.cs
- Visual3D.cs
- TextTreeInsertUndoUnit.cs
- Clipboard.cs
- MetadataArtifactLoader.cs
- ArgIterator.cs
- ProviderBase.cs
- xmlfixedPageInfo.cs
- SplineKeyFrames.cs
- SubstitutionList.cs
- BitmapCodecInfo.cs
- SqlRecordBuffer.cs
- RealizedColumnsBlock.cs
- FixedSOMTableRow.cs
- MappedMetaModel.cs
- MembershipSection.cs
- WebControlAdapter.cs
- NumericUpDownAcceleration.cs
- TextComposition.cs
- RecipientInfo.cs
- LifetimeServices.cs
- TextParagraphProperties.cs
- MimeTypeAttribute.cs
- JsonReader.cs
- XmlBinaryWriterSession.cs
- LinqMaximalSubtreeNominator.cs
- XamlClipboardData.cs
- MexHttpBindingElement.cs
- PasswordValidationException.cs
- GeneralTransformGroup.cs
- PasswordBox.cs
- DataTable.cs
- OptionUsage.cs
- SpeakCompletedEventArgs.cs
- DesignerCategoryAttribute.cs
- XmlUnspecifiedAttribute.cs
- EventWaitHandleSecurity.cs
- WindowsBrush.cs
- SmiGettersStream.cs
- WeakReadOnlyCollection.cs
- TableStyle.cs
- NameObjectCollectionBase.cs
- ArgIterator.cs
- CorrelationManager.cs
- TextTreeDeleteContentUndoUnit.cs
- TextUtf8RawTextWriter.cs
- ToolStripItem.cs
- DirectoryLocalQuery.cs
- TextEndOfSegment.cs
- BrowsableAttribute.cs
- _SafeNetHandles.cs
- SHA1.cs
- _BufferOffsetSize.cs
- TreeNodeClickEventArgs.cs
- EventManager.cs
- Converter.cs
- UpdateInfo.cs
- PrintControllerWithStatusDialog.cs
- SqlBulkCopy.cs
- UrlMappingsModule.cs
- NestPullup.cs
- TemplateInstanceAttribute.cs
- PixelFormats.cs
- UpdatePanelControlTrigger.cs
- BooleanToVisibilityConverter.cs
- SqlParameter.cs
- WmpBitmapEncoder.cs
- ToolStripItemRenderEventArgs.cs
- FormsAuthenticationEventArgs.cs
- WindowsUpDown.cs
- TypedReference.cs
- TimeSpanMinutesConverter.cs
- handlecollector.cs
- Ops.cs
- SafeNativeMethods.cs
- SecureUICommand.cs
- InputElement.cs
- ConnectionStringsExpressionBuilder.cs
- basecomparevalidator.cs
- QueryStringParameter.cs
- ReferenceConverter.cs
- XmlSchemaNotation.cs
- WebPartAuthorizationEventArgs.cs
- DataGridViewColumnEventArgs.cs
- BufferedStream.cs