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
- ServiceModelSecurityTokenRequirement.cs
- ExecutionContext.cs
- ExpressionPrefixAttribute.cs
- CommandEventArgs.cs
- ServiceDesigner.cs
- XmlEncoding.cs
- NamespaceEmitter.cs
- URIFormatException.cs
- Events.cs
- PriorityChain.cs
- XmlTextReader.cs
- DebugInfoExpression.cs
- OdbcConnectionStringbuilder.cs
- SchemaElementLookUpTable.cs
- RequestCacheValidator.cs
- IdnElement.cs
- GeneralTransform3D.cs
- ScriptReference.cs
- ActionMessageFilterTable.cs
- TrackingMemoryStream.cs
- ObjectSecurity.cs
- PowerStatus.cs
- ConfigurationManager.cs
- SafeEventLogWriteHandle.cs
- BamlLocalizer.cs
- DataGridViewCellCancelEventArgs.cs
- ForEachDesigner.xaml.cs
- ToolboxDataAttribute.cs
- DynamicDocumentPaginator.cs
- SortKey.cs
- CellPartitioner.cs
- ColumnResizeUndoUnit.cs
- TitleStyle.cs
- ToolStripItemClickedEventArgs.cs
- Point3DCollection.cs
- SQLDateTimeStorage.cs
- TraceListeners.cs
- ADConnectionHelper.cs
- DataServiceRequest.cs
- OracleSqlParser.cs
- ExtendedProtectionPolicyTypeConverter.cs
- SamlAuthenticationStatement.cs
- HtmlInputSubmit.cs
- PartialList.cs
- SoapFaultCodes.cs
- RunInstallerAttribute.cs
- TextServicesProperty.cs
- FixedSchema.cs
- ConfigXmlWhitespace.cs
- SiteMapDataSource.cs
- DayRenderEvent.cs
- ClientEventManager.cs
- MsmqException.cs
- DataGridViewCellCollection.cs
- X509IssuerSerialKeyIdentifierClause.cs
- CommandLineParser.cs
- SourceInterpreter.cs
- ProxyFragment.cs
- RectangleGeometry.cs
- ListViewUpdateEventArgs.cs
- HuffmanTree.cs
- TextBoxDesigner.cs
- RSAProtectedConfigurationProvider.cs
- Rotation3DAnimationBase.cs
- AutoCompleteStringCollection.cs
- ObjectDataSourceMethodEditor.cs
- CheckPair.cs
- OuterGlowBitmapEffect.cs
- UdpTransportSettingsElement.cs
- DigitShape.cs
- XmlC14NWriter.cs
- rsa.cs
- CompilerErrorCollection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- CanonicalFontFamilyReference.cs
- InternalCache.cs
- WriterOutput.cs
- CheckedPointers.cs
- AtomContentProperty.cs
- MemberDomainMap.cs
- ServiceDeploymentInfo.cs
- InvalidBodyAccessException.cs
- PeerTransportSecuritySettings.cs
- ContextBase.cs
- RandomNumberGenerator.cs
- SqlCachedBuffer.cs
- OpenTypeLayout.cs
- DialogWindow.cs
- WinFormsComponentEditor.cs
- DocumentSchemaValidator.cs
- PartialList.cs
- UnionCodeGroup.cs
- ItemsPanelTemplate.cs
- XmlSchemaAttributeGroup.cs
- UnmanagedHandle.cs
- LogoValidationException.cs
- ViewStateException.cs
- DispatcherObject.cs
- sapiproxy.cs
- PageStatePersister.cs