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
- AliasExpr.cs
- ConnectivityStatus.cs
- CrossAppDomainChannel.cs
- DNS.cs
- SerialReceived.cs
- MobileCategoryAttribute.cs
- TagMapCollection.cs
- DataGridViewHeaderCell.cs
- XmlSerializerObjectSerializer.cs
- DataSysAttribute.cs
- StackBuilderSink.cs
- TrustLevel.cs
- TransactionFlowOption.cs
- SpecialFolderEnumConverter.cs
- BufferAllocator.cs
- Substitution.cs
- TripleDESCryptoServiceProvider.cs
- HashMembershipCondition.cs
- UriParserTemplates.cs
- HostProtectionPermission.cs
- FlowDocumentScrollViewer.cs
- InternalConfigConfigurationFactory.cs
- TreeNodeMouseHoverEvent.cs
- ClientTargetSection.cs
- ActivityUtilities.cs
- Delegate.cs
- DateTimeUtil.cs
- PrintPreviewGraphics.cs
- Drawing.cs
- ConstraintEnumerator.cs
- RuleProcessor.cs
- URL.cs
- BatchStream.cs
- ParallelTimeline.cs
- XPathDocumentIterator.cs
- SqlTopReducer.cs
- FlowNode.cs
- QueryRewriter.cs
- SynchronizedInputPattern.cs
- CompilationRelaxations.cs
- DataShape.cs
- ImportedPolicyConversionContext.cs
- VerticalAlignConverter.cs
- TrackingLocation.cs
- MailHeaderInfo.cs
- ListViewCancelEventArgs.cs
- InvokeGenerator.cs
- TrustLevelCollection.cs
- RadioButtonRenderer.cs
- WebPartEventArgs.cs
- StandardToolWindows.cs
- InfoCardSchemas.cs
- QueueProcessor.cs
- WebPartTransformerAttribute.cs
- SrgsDocumentParser.cs
- KnownTypes.cs
- AnimationLayer.cs
- IdleTimeoutMonitor.cs
- LogSwitch.cs
- SupportingTokenChannel.cs
- AutomationPatternInfo.cs
- ServiceNameElement.cs
- VirtualDirectoryMapping.cs
- BitmapData.cs
- SessionEndedEventArgs.cs
- ActivityScheduledQuery.cs
- TableItemPattern.cs
- FrameworkTextComposition.cs
- PersonalizablePropertyEntry.cs
- RelationshipEndMember.cs
- _AcceptOverlappedAsyncResult.cs
- DescriptionAttribute.cs
- UrlMappingsSection.cs
- MenuCommand.cs
- RequestCacheManager.cs
- StrokeDescriptor.cs
- EventDescriptor.cs
- TemplateApplicationHelper.cs
- ScriptRef.cs
- List.cs
- SqlServices.cs
- XpsResourceDictionary.cs
- DataTableMappingCollection.cs
- XmlAnyAttributeAttribute.cs
- ZoneLinkButton.cs
- Solver.cs
- MailWriter.cs
- ComboBox.cs
- ToolStripManager.cs
- DeflateInput.cs
- BuildProviderCollection.cs
- WorkerRequest.cs
- RestClientProxyHandler.cs
- clipboard.cs
- ThicknessAnimationBase.cs
- TemplatedMailWebEventProvider.cs
- ExpressionNode.cs
- ListItemCollection.cs
- HtmlCommandAdapter.cs
- HwndAppCommandInputProvider.cs