Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- FusionWrap.cs
- NativeMethods.cs
- XPathNavigatorReader.cs
- Parser.cs
- RegisteredDisposeScript.cs
- MatrixConverter.cs
- Comparer.cs
- XmlValidatingReaderImpl.cs
- ImageMetadata.cs
- CompositeKey.cs
- WindowsMenu.cs
- Win32MouseDevice.cs
- FlowDocumentFormatter.cs
- TextParentUndoUnit.cs
- ErrorEventArgs.cs
- ParallelTimeline.cs
- Misc.cs
- Grid.cs
- RowTypeElement.cs
- ConstantSlot.cs
- NullRuntimeConfig.cs
- UserMapPath.cs
- TableLayoutPanelCellPosition.cs
- ReplyChannelAcceptor.cs
- SecureConversationSecurityTokenParameters.cs
- _CommandStream.cs
- XmlSchemaObjectCollection.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- XmlQueryStaticData.cs
- InvokeHandlers.cs
- NavigationPropertyEmitter.cs
- NestedContainer.cs
- OpacityConverter.cs
- WebPartMovingEventArgs.cs
- HTTPAPI_VERSION.cs
- Metafile.cs
- XsltArgumentList.cs
- SelfIssuedSamlTokenFactory.cs
- PtsHost.cs
- sitestring.cs
- WeakReadOnlyCollection.cs
- SelectionEditor.cs
- RunClient.cs
- GenericParameterDataContract.cs
- ToolStripPanelRow.cs
- XmlSchemaObjectTable.cs
- TraceFilter.cs
- PolyLineSegmentFigureLogic.cs
- ArgumentException.cs
- PathData.cs
- DataRecordObjectView.cs
- RuntimeVariablesExpression.cs
- DPAPIProtectedConfigurationProvider.cs
- AnnotationDocumentPaginator.cs
- UnsafeNativeMethods.cs
- TempFiles.cs
- OleAutBinder.cs
- FileSystemEventArgs.cs
- CommandHelpers.cs
- ResourcesChangeInfo.cs
- FixedDocumentPaginator.cs
- ListSortDescription.cs
- CodeMemberMethod.cs
- StringValidatorAttribute.cs
- Assembly.cs
- Policy.cs
- TemplateBindingExpressionConverter.cs
- RegexParser.cs
- ScriptManagerProxy.cs
- MachineKeySection.cs
- SessionMode.cs
- PageAdapter.cs
- Privilege.cs
- Attributes.cs
- Grant.cs
- XmlSchemaAppInfo.cs
- DataObject.cs
- AggregateNode.cs
- ConfigurationFileMap.cs
- SystemIcmpV6Statistics.cs
- WaitHandleCannotBeOpenedException.cs
- RoutedPropertyChangedEventArgs.cs
- ValidationPropertyAttribute.cs
- DynamicPropertyReader.cs
- SpecularMaterial.cs
- KeyValuePairs.cs
- WebPartConnectionsEventArgs.cs
- ComboBoxDesigner.cs
- UIPropertyMetadata.cs
- UnsafeNativeMethods.cs
- XappLauncher.cs
- MD5CryptoServiceProvider.cs
- ZoneLinkButton.cs
- SQLRoleProvider.cs
- MemberProjectionIndex.cs
- RectangleGeometry.cs
- ParallelTimeline.cs
- WaitForChangedResult.cs
- BrowserCapabilitiesFactoryBase.cs
- TakeOrSkipWhileQueryOperator.cs