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
- MatrixAnimationUsingKeyFrames.cs
- BindingCompleteEventArgs.cs
- BitmapPalette.cs
- Interlocked.cs
- LabelLiteral.cs
- EmptyTextWriter.cs
- ListBoxAutomationPeer.cs
- sqlpipe.cs
- SelectionHighlightInfo.cs
- WindowsListBox.cs
- httpstaticobjectscollection.cs
- VisualTarget.cs
- RuntimeHandles.cs
- TypeUtil.cs
- UpdateException.cs
- ListBindingConverter.cs
- Rect.cs
- Vector3DIndependentAnimationStorage.cs
- DesignerActionUIStateChangeEventArgs.cs
- EntityProxyTypeInfo.cs
- SrgsElementFactory.cs
- Currency.cs
- ColumnMapCopier.cs
- WeakEventManager.cs
- HandlerWithFactory.cs
- LogWriteRestartAreaAsyncResult.cs
- Signature.cs
- BlurBitmapEffect.cs
- ManipulationLogic.cs
- DataTableMappingCollection.cs
- HtmlHistory.cs
- SoapTypeAttribute.cs
- Int16Animation.cs
- ValueSerializerAttribute.cs
- XamlSerializerUtil.cs
- ThreadBehavior.cs
- XmlAttributes.cs
- DataGridHeaderBorder.cs
- DataGridParentRows.cs
- ButtonRenderer.cs
- SingleStorage.cs
- AmbientLight.cs
- TypedElement.cs
- StrokeNodeOperations.cs
- CollectionViewGroup.cs
- DocumentCollection.cs
- shaperfactoryquerycachekey.cs
- HostedHttpTransportManager.cs
- IntranetCredentialPolicy.cs
- TextModifier.cs
- HttpServerVarsCollection.cs
- CultureMapper.cs
- DriveInfo.cs
- ObjectDataProvider.cs
- ColumnWidthChangedEvent.cs
- SoapProtocolReflector.cs
- KeyValuePairs.cs
- Pair.cs
- OdbcParameter.cs
- _LocalDataStoreMgr.cs
- SystemIPv4InterfaceProperties.cs
- Stream.cs
- Console.cs
- CompilationSection.cs
- OracleException.cs
- QilChoice.cs
- CodeTypeDeclaration.cs
- StringHandle.cs
- ChameleonKey.cs
- TypeConverter.cs
- MenuItemStyle.cs
- StringResourceManager.cs
- AssemblyNameProxy.cs
- WebContext.cs
- BlobPersonalizationState.cs
- UDPClient.cs
- ClientConvert.cs
- MSAAEventDispatcher.cs
- HMACMD5.cs
- PlainXmlSerializer.cs
- XmlSchemaSet.cs
- Delegate.cs
- ChangeConflicts.cs
- RoleBoolean.cs
- X509Certificate2Collection.cs
- EditorPartChrome.cs
- JsonByteArrayDataContract.cs
- SchemaImporter.cs
- BooleanStorage.cs
- BamlRecordHelper.cs
- LocatorManager.cs
- BuildProviderCollection.cs
- Rfc2898DeriveBytes.cs
- SystemResources.cs
- WorkflowInstanceExtensionProvider.cs
- FormatException.cs
- DecodeHelper.cs
- CompressEmulationStream.cs
- MetadataArtifactLoaderFile.cs
- GeneralTransform3DCollection.cs