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
- OdbcEnvironment.cs
- DNS.cs
- TextRangeEditLists.cs
- CodeObject.cs
- QueryOpcode.cs
- TransformGroup.cs
- TextViewElement.cs
- DefaultValidator.cs
- DoubleCollection.cs
- Wizard.cs
- FrameworkTextComposition.cs
- ScrollEventArgs.cs
- SchemaImporterExtensionsSection.cs
- PropertyValue.cs
- HttpHandlerAction.cs
- PerformanceCounterPermissionAttribute.cs
- MenuStrip.cs
- ResourceDescriptionAttribute.cs
- DynamicArgumentDesigner.xaml.cs
- COM2TypeInfoProcessor.cs
- DataGridRowsPresenter.cs
- ListBase.cs
- CodeArrayCreateExpression.cs
- ToolStripOverflow.cs
- DuplicateDetector.cs
- Effect.cs
- XmlSchemaDocumentation.cs
- ExclusiveHandleList.cs
- PeerNameRecordCollection.cs
- diagnosticsswitches.cs
- HtmlTableCell.cs
- HostingEnvironmentException.cs
- MetadataProperty.cs
- GetChildSubtree.cs
- ListViewInsertedEventArgs.cs
- OleDbRowUpdatedEvent.cs
- AppDomainFactory.cs
- DeleteCardRequest.cs
- WorkflowApplicationIdleEventArgs.cs
- DoubleCollectionConverter.cs
- XmlUrlResolver.cs
- CommandEventArgs.cs
- HttpProfileGroupBase.cs
- TextRunCache.cs
- SerializableAttribute.cs
- MediaContextNotificationWindow.cs
- PolyLineSegment.cs
- CultureTable.cs
- RegexCompilationInfo.cs
- LinqDataSourceContextEventArgs.cs
- OleDbTransaction.cs
- EnumMember.cs
- ToolbarAUtomationPeer.cs
- HttpModulesSection.cs
- DataGridViewCellEventArgs.cs
- EntityClientCacheKey.cs
- KoreanLunisolarCalendar.cs
- ContractMapping.cs
- XmlSchemaSimpleContentRestriction.cs
- FixedTextContainer.cs
- SpeakProgressEventArgs.cs
- RawStylusInput.cs
- ProfessionalColors.cs
- WindowsSecurityToken.cs
- DiffuseMaterial.cs
- EntityException.cs
- CqlLexerHelpers.cs
- TextElementEnumerator.cs
- AvTraceDetails.cs
- FormViewUpdateEventArgs.cs
- ClipboardData.cs
- GZipStream.cs
- WeakReferenceKey.cs
- Maps.cs
- Predicate.cs
- XmlNodeList.cs
- EventManager.cs
- documentsequencetextpointer.cs
- DBAsyncResult.cs
- DiscreteKeyFrames.cs
- SqlDataSourceView.cs
- ShaperBuffers.cs
- DocumentSequence.cs
- DataGridView.cs
- BufferBuilder.cs
- DockingAttribute.cs
- Metafile.cs
- AsyncCompletedEventArgs.cs
- OleDbSchemaGuid.cs
- TrackingParameters.cs
- XXXInfos.cs
- CounterSampleCalculator.cs
- BoolExpressionVisitors.cs
- Stopwatch.cs
- ErrorWebPart.cs
- DesignTimeData.cs
- Keyboard.cs
- SystemResourceKey.cs
- XmlSchemaObject.cs
- cryptoapiTransform.cs