Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- WorkflowDurableInstance.cs
- Size3D.cs
- DbModificationClause.cs
- BindingCollection.cs
- PointUtil.cs
- EventPropertyMap.cs
- XmlSchemaGroupRef.cs
- StyleCollectionEditor.cs
- ArrayElementGridEntry.cs
- EventProviderClassic.cs
- DetailsViewPageEventArgs.cs
- OperationAbortedException.cs
- Quaternion.cs
- ResourceReader.cs
- CodeBlockBuilder.cs
- DisposableCollectionWrapper.cs
- HtmlElementErrorEventArgs.cs
- StaticTextPointer.cs
- ExpandoObject.cs
- SoapSchemaImporter.cs
- BasicHttpBindingElement.cs
- Exceptions.cs
- SchemaTypeEmitter.cs
- OdbcParameterCollection.cs
- MdiWindowListStrip.cs
- FixedSOMContainer.cs
- CryptoHandle.cs
- DataGridViewComboBoxCell.cs
- UrlMapping.cs
- Focus.cs
- PreviewPageInfo.cs
- DotAtomReader.cs
- SpotLight.cs
- Mutex.cs
- EventProviderWriter.cs
- XPathDescendantIterator.cs
- ConstructorNeedsTagAttribute.cs
- FlowLayout.cs
- SupportsEventValidationAttribute.cs
- ControlBuilderAttribute.cs
- AssemblyAssociatedContentFileAttribute.cs
- StrokeCollection.cs
- InputMethod.cs
- DocumentXPathNavigator.cs
- ViewValidator.cs
- SoapAttributeAttribute.cs
- InvalidEnumArgumentException.cs
- diagnosticsswitches.cs
- ElementNotAvailableException.cs
- HttpsHostedTransportConfiguration.cs
- LOSFormatter.cs
- WebPartDescriptionCollection.cs
- LabelLiteral.cs
- followingquery.cs
- XmlDataSourceNodeDescriptor.cs
- IdentityValidationException.cs
- BamlTreeNode.cs
- HwndHostAutomationPeer.cs
- TextPattern.cs
- XmlSchemaInferenceException.cs
- CFStream.cs
- selecteditemcollection.cs
- SqlCharStream.cs
- WebPartTransformerAttribute.cs
- AuthenticationSection.cs
- AssemblyUtil.cs
- FileRecordSequenceCompletedAsyncResult.cs
- DataObjectCopyingEventArgs.cs
- DownloadProgressEventArgs.cs
- XmlProcessingInstruction.cs
- DataServiceHostFactory.cs
- ReadWriteSpinLock.cs
- RectAnimationClockResource.cs
- RecordsAffectedEventArgs.cs
- DebugViewWriter.cs
- MultiBindingExpression.cs
- DataControlPagerLinkButton.cs
- PropertyInformation.cs
- ErrorFormatter.cs
- SoapDocumentMethodAttribute.cs
- GlobalizationSection.cs
- TempFiles.cs
- SapiRecoInterop.cs
- JsonSerializer.cs
- SmtpNetworkElement.cs
- RegexCaptureCollection.cs
- RoleBoolean.cs
- NamedPipeHostedTransportConfiguration.cs
- TransportChannelListener.cs
- ConfigurationManagerInternalFactory.cs
- InternalTypeHelper.cs
- DesigntimeLicenseContext.cs
- UnsupportedPolicyOptionsException.cs
- NotifyParentPropertyAttribute.cs
- TraversalRequest.cs
- StoragePropertyMapping.cs
- TextServicesLoader.cs
- PackagePart.cs
- DetailsViewCommandEventArgs.cs
- Tag.cs