Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AssociationTypeEmitter.cs
- ApplicationBuildProvider.cs
- MouseDevice.cs
- TraceFilter.cs
- SqlFileStream.cs
- ALinqExpressionVisitor.cs
- ClientData.cs
- ExceptionHandlersDesigner.cs
- ColumnResizeAdorner.cs
- ViewGenerator.cs
- ControlAdapter.cs
- ObjectListDataBindEventArgs.cs
- GridViewColumnHeaderAutomationPeer.cs
- MimeMultiPart.cs
- ArgumentException.cs
- PixelFormatConverter.cs
- Pkcs9Attribute.cs
- DynamicValidator.cs
- DSASignatureDeformatter.cs
- X509Certificate.cs
- CustomSignedXml.cs
- PropertyMapper.cs
- XmlSerializerVersionAttribute.cs
- AssertFilter.cs
- DataGridState.cs
- LayoutTableCell.cs
- SByteConverter.cs
- VisualStateManager.cs
- MethodRental.cs
- InputReport.cs
- SourceSwitch.cs
- OleDbCommandBuilder.cs
- TypeResolver.cs
- TaskbarItemInfo.cs
- SystemResources.cs
- DesignerCategoryAttribute.cs
- Geometry3D.cs
- UnsafeNativeMethods.cs
- TabPanel.cs
- Context.cs
- ProfileGroupSettingsCollection.cs
- EventMappingSettingsCollection.cs
- ConsumerConnectionPointCollection.cs
- ExtensionFile.cs
- SymLanguageVendor.cs
- HyperLinkStyle.cs
- WebPartEditorOkVerb.cs
- Control.cs
- HttpPostLocalhostServerProtocol.cs
- URL.cs
- TheQuery.cs
- DependencyPropertyConverter.cs
- CompilerScope.cs
- Parallel.cs
- Label.cs
- LicenseManager.cs
- BehaviorService.cs
- ReadOnlyCollectionBase.cs
- LinqDataSourceView.cs
- _Semaphore.cs
- PackagePartCollection.cs
- Keywords.cs
- IPGlobalProperties.cs
- SynchronizedDispatch.cs
- TriggerBase.cs
- XmlDocumentViewSchema.cs
- ServiceBehaviorElement.cs
- ControlPager.cs
- InstanceValue.cs
- XmlQualifiedName.cs
- ItemsChangedEventArgs.cs
- BookmarkScope.cs
- XmlBinaryReader.cs
- MetabaseSettings.cs
- BaseParaClient.cs
- StreamSecurityUpgradeInitiator.cs
- GridViewRowCollection.cs
- TextServicesDisplayAttribute.cs
- Clause.cs
- NegatedConstant.cs
- SubMenuStyle.cs
- ToolStripStatusLabel.cs
- Pipe.cs
- OdbcCommand.cs
- PickBranch.cs
- CodeMemberField.cs
- ConstantSlot.cs
- ProfileSection.cs
- Rectangle.cs
- HelpInfo.cs
- StylusButton.cs
- ResXDataNode.cs
- Timer.cs
- DefaultSection.cs
- GPStream.cs
- UserControl.cs
- EventWaitHandle.cs
- AffineTransform3D.cs
- TimeoutValidationAttribute.cs
- Assembly.cs