Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ExpressionPrefixAttribute.cs
- SchemaMerger.cs
- GridViewDeleteEventArgs.cs
- InputManager.cs
- SHA1.cs
- WebPartExportVerb.cs
- LessThan.cs
- ServicePointManagerElement.cs
- DoubleKeyFrameCollection.cs
- AspCompat.cs
- ToolStripLocationCancelEventArgs.cs
- PrimitiveList.cs
- SID.cs
- COM2PropertyDescriptor.cs
- ColorMatrix.cs
- FieldBuilder.cs
- MethodAccessException.cs
- HttpListenerException.cs
- SafeBuffer.cs
- SplineKeyFrames.cs
- Thumb.cs
- RadialGradientBrush.cs
- TimestampInformation.cs
- OAVariantLib.cs
- DataIdProcessor.cs
- XsltInput.cs
- FrameworkName.cs
- configsystem.cs
- ProfileSettings.cs
- CultureSpecificStringDictionary.cs
- Currency.cs
- _AutoWebProxyScriptEngine.cs
- OdbcConnectionOpen.cs
- TextTreeUndo.cs
- MultiSelectRootGridEntry.cs
- TextProperties.cs
- WebEventTraceProvider.cs
- EmulateRecognizeCompletedEventArgs.cs
- EdmValidator.cs
- HashCodeCombiner.cs
- ChangeNode.cs
- DbConnectionHelper.cs
- Tuple.cs
- DynamicValidatorEventArgs.cs
- DataRelation.cs
- LowerCaseStringConverter.cs
- ZipIOExtraField.cs
- InvokeProviderWrapper.cs
- streamingZipPartStream.cs
- DataGridViewLinkColumn.cs
- PropertyMetadata.cs
- ContainerUtilities.cs
- PrimaryKeyTypeConverter.cs
- Int32CAMarshaler.cs
- BoolExpression.cs
- FactoryMaker.cs
- EntityCommandExecutionException.cs
- CompositeControlDesigner.cs
- Accessible.cs
- TableRow.cs
- backend.cs
- ComponentChangingEvent.cs
- PeerNameResolver.cs
- DocumentApplicationJournalEntry.cs
- SqlBuilder.cs
- TypeDescriptionProvider.cs
- ButtonBaseDesigner.cs
- ResourceKey.cs
- ContextConfiguration.cs
- Vector.cs
- SqlNode.cs
- XComponentModel.cs
- autovalidator.cs
- BaseDataListActionList.cs
- Property.cs
- DoubleKeyFrameCollection.cs
- CorrelationActionMessageFilter.cs
- DataListItemCollection.cs
- Tablet.cs
- DragDrop.cs
- TreeView.cs
- DataGridToolTip.cs
- DataRecordObjectView.cs
- DataGridViewColumnCollection.cs
- Timer.cs
- DbConnectionFactory.cs
- ComPlusServiceLoader.cs
- SymbolTable.cs
- SelectionProviderWrapper.cs
- MergeLocalizationDirectives.cs
- ParagraphResult.cs
- RelatedView.cs
- Reference.cs
- StylusPointDescription.cs
- TraceListener.cs
- ListViewInsertedEventArgs.cs
- BooleanExpr.cs
- RegisteredExpandoAttribute.cs
- SelectionGlyph.cs
- errorpatternmatcher.cs