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
- ExceptionUtility.cs
- ConnectionProviderAttribute.cs
- BufferModeSettings.cs
- SQLMembershipProvider.cs
- ConditionCollection.cs
- SqlRewriteScalarSubqueries.cs
- XmlSiteMapProvider.cs
- sqlcontext.cs
- GridItemCollection.cs
- DefaultTextStoreTextComposition.cs
- ContentElement.cs
- DataSourceSelectArguments.cs
- XmlSchemaAnyAttribute.cs
- AsymmetricSignatureFormatter.cs
- HeaderUtility.cs
- ImageCodecInfo.cs
- MetadataStore.cs
- CommandID.cs
- JpegBitmapDecoder.cs
- FrameworkTextComposition.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- FrameworkContentElement.cs
- WmlCommandAdapter.cs
- CompilerWrapper.cs
- DataRow.cs
- MediaContext.cs
- ContextProperty.cs
- DataSourceHelper.cs
- RootBrowserWindowAutomationPeer.cs
- BinaryEditor.cs
- ConfigurationLockCollection.cs
- AspCompat.cs
- XmlSchemaObject.cs
- GenericXmlSecurityToken.cs
- DataSourceXmlElementAttribute.cs
- ScrollItemPatternIdentifiers.cs
- TreeNode.cs
- PageAsyncTaskManager.cs
- SetState.cs
- QueryPageSettingsEventArgs.cs
- ActivityBindForm.Designer.cs
- ZoneIdentityPermission.cs
- MeshGeometry3D.cs
- Compiler.cs
- GlyphingCache.cs
- LinkLabelLinkClickedEvent.cs
- CodeGroup.cs
- NumberAction.cs
- CodeStatementCollection.cs
- SortFieldComparer.cs
- ObjectQuery_EntitySqlExtensions.cs
- HttpServerVarsCollection.cs
- COM2ComponentEditor.cs
- FontWeightConverter.cs
- UpDownBaseDesigner.cs
- DetailsViewInsertedEventArgs.cs
- RenderTargetBitmap.cs
- ZipIOCentralDirectoryBlock.cs
- EntityRecordInfo.cs
- ArrayHelper.cs
- StopStoryboard.cs
- XmlAutoDetectWriter.cs
- RichTextBoxContextMenu.cs
- MetadataSection.cs
- SecurityDescriptor.cs
- SelectedGridItemChangedEvent.cs
- BuildDependencySet.cs
- StoreItemCollection.cs
- ProfilePropertySettingsCollection.cs
- SqlCommandSet.cs
- IPHostEntry.cs
- DataContractAttribute.cs
- SettingsPropertyValue.cs
- WorkflowInstanceSuspendedRecord.cs
- CacheAxisQuery.cs
- ClientUtils.cs
- SharedHttpsTransportManager.cs
- DataGridBoolColumn.cs
- SymbolEqualComparer.cs
- TransactionFilter.cs
- MdImport.cs
- DbProviderFactoriesConfigurationHandler.cs
- DataRecordObjectView.cs
- QilStrConcatenator.cs
- WaveHeader.cs
- EndpointIdentityExtension.cs
- MultiBindingExpression.cs
- SoapSchemaExporter.cs
- FeatureSupport.cs
- GPStream.cs
- CollectionTraceRecord.cs
- XmlSignatureProperties.cs
- ClockController.cs
- InstanceKeyNotReadyException.cs
- StreamProxy.cs
- DesignerSerializationVisibilityAttribute.cs
- BitmapEffectDrawingContextState.cs
- PersonalizationState.cs
- HierarchicalDataTemplate.cs
- DesignerVerb.cs