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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PasswordBoxAutomationPeer.cs
- ProcessMessagesAsyncResult.cs
- InputMethodStateChangeEventArgs.cs
- FrugalMap.cs
- CookieParameter.cs
- MailFileEditor.cs
- ReadContentAsBinaryHelper.cs
- ResolveNameEventArgs.cs
- TagNameToTypeMapper.cs
- RegexRunner.cs
- TypeUtils.cs
- ServiceReference.cs
- ProcessModelInfo.cs
- FilteredAttributeCollection.cs
- EventPrivateKey.cs
- oledbmetadatacollectionnames.cs
- ExternalDataExchangeService.cs
- CodeExporter.cs
- ProcessThreadDesigner.cs
- TextEndOfSegment.cs
- FixedDocumentPaginator.cs
- ProviderSettings.cs
- GridViewHeaderRowPresenter.cs
- ListenerConnectionModeReader.cs
- BoundsDrawingContextWalker.cs
- ExpressionBindingsDialog.cs
- SafeThemeHandle.cs
- And.cs
- DataObject.cs
- SequentialWorkflowHeaderFooter.cs
- HierarchicalDataBoundControlAdapter.cs
- GridViewHeaderRowPresenter.cs
- PolicyLevel.cs
- DataServiceQueryException.cs
- ConfigurationLocation.cs
- CollectionViewSource.cs
- MemoryMappedViewAccessor.cs
- DelegatingConfigHost.cs
- MenuItemStyle.cs
- DetailsViewInsertedEventArgs.cs
- BooleanExpr.cs
- DataGridViewUtilities.cs
- Hashtable.cs
- DataSetMappper.cs
- XmlUnspecifiedAttribute.cs
- PartitionedStream.cs
- FontWeightConverter.cs
- StaticExtension.cs
- DataTableMapping.cs
- WriterOutput.cs
- AmbientLight.cs
- PagePropertiesChangingEventArgs.cs
- XmlSchemaCollection.cs
- DocumentViewerConstants.cs
- UnitySerializationHolder.cs
- AuthenticationModulesSection.cs
- _Semaphore.cs
- MenuItem.cs
- SmiMetaDataProperty.cs
- SiteMapNode.cs
- SchemaDeclBase.cs
- UnionCodeGroup.cs
- WebPartMenu.cs
- OracleRowUpdatedEventArgs.cs
- EntityStoreSchemaGenerator.cs
- NameValuePermission.cs
- _ConnectStream.cs
- XmlEncoding.cs
- unsafenativemethodsother.cs
- OptimizedTemplateContent.cs
- UInt32.cs
- HtmlTextArea.cs
- DataGridViewSelectedColumnCollection.cs
- PageBreakRecord.cs
- WebConfigurationManager.cs
- Graph.cs
- ILGenerator.cs
- HttpHeaderCollection.cs
- ConcurrentStack.cs
- FromRequest.cs
- Margins.cs
- ToolBarTray.cs
- DataGridTextBoxColumn.cs
- PenLineCapValidation.cs
- AuthenticatingEventArgs.cs
- ConstructorNeedsTagAttribute.cs
- Zone.cs
- TreeViewAutomationPeer.cs
- XmlSchemaAppInfo.cs
- VectorCollectionConverter.cs
- SystemResourceHost.cs
- WorkflowInspectionServices.cs
- ButtonFieldBase.cs
- RecordConverter.cs
- Stylesheet.cs
- ImageMapEventArgs.cs
- StylusOverProperty.cs
- formatter.cs
- VisualBasicHelper.cs
- ExcCanonicalXml.cs