Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / DeferredReference.cs / 1305600 / 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
- SetIterators.cs
- HScrollProperties.cs
- ResourceCategoryAttribute.cs
- AuthenticationService.cs
- MetadataItemEmitter.cs
- FreeFormDesigner.cs
- FactoryRecord.cs
- DynamicRendererThreadManager.cs
- XamlPathDataSerializer.cs
- BinaryFormatter.cs
- Buffer.cs
- WinEventHandler.cs
- CompositeActivityTypeDescriptor.cs
- WebPartMinimizeVerb.cs
- MinMaxParagraphWidth.cs
- ToolBarButton.cs
- CheckBoxFlatAdapter.cs
- SqlDesignerDataSourceView.cs
- DispatchOperationRuntime.cs
- SingleObjectCollection.cs
- GeometryCollection.cs
- ElementAction.cs
- TypeToken.cs
- ApplicationServicesHostFactory.cs
- VarInfo.cs
- ErrorsHelper.cs
- InkSerializer.cs
- VirtualDirectoryMapping.cs
- BasicHttpBindingElement.cs
- basecomparevalidator.cs
- DataServiceException.cs
- XMLSchema.cs
- Renderer.cs
- Permission.cs
- MULTI_QI.cs
- DataServices.cs
- DynamicRendererThreadManager.cs
- DataGridViewEditingControlShowingEventArgs.cs
- PolyQuadraticBezierSegment.cs
- Compilation.cs
- TextOutput.cs
- FileDetails.cs
- QuaternionKeyFrameCollection.cs
- WindowsUserNameCachingSecurityTokenAuthenticator.cs
- GenericXmlSecurityTokenAuthenticator.cs
- ISAPIRuntime.cs
- PingReply.cs
- securitycriticaldata.cs
- TextBoxDesigner.cs
- XPathEmptyIterator.cs
- InProcStateClientManager.cs
- BuildResult.cs
- TreeWalker.cs
- HMACSHA256.cs
- PrinterResolution.cs
- WebPartEventArgs.cs
- JpegBitmapEncoder.cs
- CoTaskMemUnicodeSafeHandle.cs
- InfoCardXmlSerializer.cs
- Comparer.cs
- KeyValueInternalCollection.cs
- UdpRetransmissionSettings.cs
- TakeQueryOptionExpression.cs
- PointValueSerializer.cs
- ObjectDataSourceView.cs
- InvalidCastException.cs
- ScriptingProfileServiceSection.cs
- ScriptControlDescriptor.cs
- DataGrid.cs
- PerformanceCounterScope.cs
- DesignSurfaceServiceContainer.cs
- DataGridViewLinkCell.cs
- Simplifier.cs
- XmlUrlEditor.cs
- SymmetricSecurityBindingElement.cs
- Expressions.cs
- Focus.cs
- LoadWorkflowByKeyAsyncResult.cs
- DashStyles.cs
- SubstitutionList.cs
- PathNode.cs
- DataGridViewCellEventArgs.cs
- BooleanSwitch.cs
- ObjectQuery_EntitySqlExtensions.cs
- UserNamePasswordValidator.cs
- OleDbParameter.cs
- ConversionContext.cs
- DataGridViewTextBoxCell.cs
- ProbeMatchesMessage11.cs
- AssemblyResourceLoader.cs
- Emitter.cs
- SqlBuffer.cs
- ContractSearchPattern.cs
- SecurityUtils.cs
- NumberSubstitution.cs
- AnimatedTypeHelpers.cs
- TrustManagerMoreInformation.cs
- SplitContainer.cs
- ListCollectionView.cs
- StylusEditingBehavior.cs