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
- Visitors.cs
- EventLog.cs
- MouseGestureValueSerializer.cs
- IApplicationTrustManager.cs
- SoapAttributeAttribute.cs
- TimeSpanValidator.cs
- State.cs
- Comparer.cs
- OutOfMemoryException.cs
- RequestCache.cs
- FunctionQuery.cs
- Point3DKeyFrameCollection.cs
- typedescriptorpermission.cs
- LocalizationParserHooks.cs
- AppLevelCompilationSectionCache.cs
- OleDbError.cs
- SQLConvert.cs
- LazyTextWriterCreator.cs
- RowCache.cs
- CollectionViewProxy.cs
- Stacktrace.cs
- PageCodeDomTreeGenerator.cs
- Light.cs
- Size.cs
- DynamicObject.cs
- DecoratedNameAttribute.cs
- BmpBitmapEncoder.cs
- WindowsContainer.cs
- DeviceContext.cs
- PagedControl.cs
- PagePropertiesChangingEventArgs.cs
- SqlDataRecord.cs
- SimpleWorkerRequest.cs
- SrgsToken.cs
- KerberosTicketHashIdentifierClause.cs
- AutoFocusStyle.xaml.cs
- CommandManager.cs
- ScriptingSectionGroup.cs
- XmlAnyAttributeAttribute.cs
- MouseGestureConverter.cs
- Control.cs
- WebResourceAttribute.cs
- QuaternionAnimation.cs
- EnvelopedPkcs7.cs
- baseshape.cs
- HwndSourceKeyboardInputSite.cs
- SqlDataSource.cs
- MouseCaptureWithinProperty.cs
- TdsValueSetter.cs
- MethodBuilderInstantiation.cs
- PropertyGridEditorPart.cs
- RepeaterItemEventArgs.cs
- OptimizedTemplateContentHelper.cs
- AttachmentService.cs
- LinqDataSourceValidationException.cs
- UnsafeNativeMethods.cs
- SpotLight.cs
- EntityCollection.cs
- KeyNotFoundException.cs
- PreviewControlDesigner.cs
- ToolStripItemRenderEventArgs.cs
- Executor.cs
- CustomErrorCollection.cs
- CodeTypeDelegate.cs
- HwndKeyboardInputProvider.cs
- BasicBrowserDialog.designer.cs
- PropertiesTab.cs
- MatrixTransform3D.cs
- DataGridViewUtilities.cs
- DbConvert.cs
- DynamicValueConverter.cs
- baseaxisquery.cs
- Int64Animation.cs
- HtmlInputControl.cs
- TaskFormBase.cs
- UrlUtility.cs
- Button.cs
- SafeProcessHandle.cs
- MessageDecoder.cs
- GeometryDrawing.cs
- Array.cs
- StrongNameKeyPair.cs
- ShaderRenderModeValidation.cs
- ListSourceHelper.cs
- SQLSingle.cs
- NavigationHelper.cs
- HwndSource.cs
- BamlReader.cs
- TableAutomationPeer.cs
- CodePageUtils.cs
- XpsLiterals.cs
- ScriptReferenceEventArgs.cs
- DBBindings.cs
- SoapElementAttribute.cs
- TargetConverter.cs
- hresults.cs
- ReadingWritingEntityEventArgs.cs
- OleDbException.cs
- GetWinFXPath.cs
- CounterSampleCalculator.cs