Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- AsyncResult.cs
- MembershipUser.cs
- StrokeIntersection.cs
- Msmq4PoisonHandler.cs
- PasswordRecovery.cs
- CorrelationTokenTypeConvertor.cs
- DataListItemCollection.cs
- DataIdProcessor.cs
- ConstructorBuilder.cs
- LocatorPart.cs
- TextTreeTextNode.cs
- WindowsSpinner.cs
- ListBindableAttribute.cs
- SqlMetaData.cs
- CellCreator.cs
- LinqDataSourceHelper.cs
- OutputWindow.cs
- FieldCollectionEditor.cs
- Bind.cs
- PauseStoryboard.cs
- NumericUpDownAcceleration.cs
- DataTableReaderListener.cs
- ISAPIRuntime.cs
- InternalResources.cs
- ObjectQuery.cs
- DictionaryManager.cs
- Rotation3DAnimation.cs
- OverflowException.cs
- UIInitializationException.cs
- RootProfilePropertySettingsCollection.cs
- MimePart.cs
- SqlDataReaderSmi.cs
- TextDecorationLocationValidation.cs
- SetStateDesigner.cs
- TableLayoutColumnStyleCollection.cs
- PageBreakRecord.cs
- CallbackException.cs
- ResourceReferenceExpression.cs
- IndexedSelectQueryOperator.cs
- ApplicationServiceHelper.cs
- SignerInfo.cs
- Style.cs
- VirtualPathData.cs
- AddInAttribute.cs
- DataGridRow.cs
- RectangleGeometry.cs
- DesignColumnCollection.cs
- PropertyEmitterBase.cs
- FixUp.cs
- TreeChangeInfo.cs
- SourceFileBuildProvider.cs
- _LocalDataStore.cs
- Baml2006Reader.cs
- XmlUtil.cs
- ColorTransformHelper.cs
- GrowingArray.cs
- SizeFConverter.cs
- AudioBase.cs
- XmlIlGenerator.cs
- CommandField.cs
- NotSupportedException.cs
- FontStretch.cs
- StrongNameKeyPair.cs
- EditorPartCollection.cs
- UIntPtr.cs
- EventData.cs
- DataGridViewCellValueEventArgs.cs
- DataGridViewComboBoxEditingControl.cs
- GetPageCompletedEventArgs.cs
- SchemaElementDecl.cs
- DrawingCollection.cs
- AxHostDesigner.cs
- OutArgument.cs
- FactoryGenerator.cs
- XsltLibrary.cs
- Int32CAMarshaler.cs
- XmlDocument.cs
- DirtyTextRange.cs
- WebPartConnectionsCancelEventArgs.cs
- FormsAuthenticationTicket.cs
- SspiHelper.cs
- StandardBindingCollectionElement.cs
- HwndAppCommandInputProvider.cs
- _OSSOCK.cs
- MemoryRecordBuffer.cs
- ImageMetadata.cs
- PrincipalPermission.cs
- RegexParser.cs
- FilePrompt.cs
- userdatakeys.cs
- SystemIPGlobalProperties.cs
- EdmComplexPropertyAttribute.cs
- ObjectConverter.cs
- DataGridPageChangedEventArgs.cs
- FrugalList.cs
- MenuAutomationPeer.cs
- SimpleWorkerRequest.cs
- CodeArgumentReferenceExpression.cs
- DataGridViewColumnHeaderCell.cs
- FunctionCommandText.cs