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
- XmlWellformedWriter.cs
- XmlChildEnumerator.cs
- SessionPageStatePersister.cs
- FormView.cs
- TableChangeProcessor.cs
- SafeThemeHandle.cs
- CommonObjectSecurity.cs
- PostBackOptions.cs
- SymbolEqualComparer.cs
- TypeEnumerableViewSchema.cs
- _BaseOverlappedAsyncResult.cs
- EncryptedKey.cs
- AsyncStreamReader.cs
- CurrentChangingEventArgs.cs
- ServiceModelDictionary.cs
- TableStyle.cs
- WebServiceHandler.cs
- ClientRuntimeConfig.cs
- ToolStripContainer.cs
- SafeFindHandle.cs
- HtmlElement.cs
- VScrollBar.cs
- IMembershipProvider.cs
- TimeSpanStorage.cs
- KnownTypes.cs
- GridViewAutoFormat.cs
- WorkflowElementDialog.cs
- DataListItemCollection.cs
- HttpWriter.cs
- DbModificationClause.cs
- TypeSemantics.cs
- SemanticResolver.cs
- DependencyPropertyKey.cs
- WeakRefEnumerator.cs
- SafeRightsManagementSessionHandle.cs
- PropertyToken.cs
- SafeRegistryHandle.cs
- SchemaTypeEmitter.cs
- EntityTransaction.cs
- ForAllOperator.cs
- TripleDES.cs
- EnvelopedPkcs7.cs
- XsdDuration.cs
- ValidatorCollection.cs
- MinimizableAttributeTypeConverter.cs
- SqlDataSourceCommandEventArgs.cs
- XmlComment.cs
- ObjectDataSourceEventArgs.cs
- VisualStyleTypesAndProperties.cs
- InputScopeNameConverter.cs
- _WebProxyDataBuilder.cs
- RadioButtonFlatAdapter.cs
- XmlResolver.cs
- MDIWindowDialog.cs
- Size3DValueSerializer.cs
- StreamMarshaler.cs
- FileDialog.cs
- PlainXmlSerializer.cs
- ChangePasswordAutoFormat.cs
- ProgressBar.cs
- RightNameExpirationInfoPair.cs
- PropertyValueUIItem.cs
- ReferenceSchema.cs
- XmlEntityReference.cs
- ObjectCacheHost.cs
- ManagedIStream.cs
- HttpResponse.cs
- TimeSpanValidatorAttribute.cs
- ComNativeDescriptor.cs
- CaseStatement.cs
- JsonUriDataContract.cs
- XmlRootAttribute.cs
- DependencyProperty.cs
- SizeAnimationClockResource.cs
- FastEncoderWindow.cs
- TextSelectionHelper.cs
- TreeNodeStyle.cs
- _ListenerRequestStream.cs
- AbstractExpressions.cs
- ConstraintStruct.cs
- CheckedPointers.cs
- CodeCatchClause.cs
- AutomationEventArgs.cs
- XXXOnTypeBuilderInstantiation.cs
- ToolStripMenuItem.cs
- CommandHelpers.cs
- SetStoryboardSpeedRatio.cs
- Ray3DHitTestResult.cs
- ClonableStack.cs
- NetworkStream.cs
- RowToFieldTransformer.cs
- VectorConverter.cs
- XmlNode.cs
- TemplateEditingVerb.cs
- IntSecurity.cs
- HtmlInputCheckBox.cs
- EncryptedType.cs
- Blend.cs
- EventSourceCreationData.cs
- DeadCharTextComposition.cs