Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- BinaryFormatter.cs
- _HelperAsyncResults.cs
- MessageSmuggler.cs
- CodeBlockBuilder.cs
- HttpHandlersSection.cs
- SHA1Managed.cs
- SettingsPropertyCollection.cs
- Baml2006Reader.cs
- NativeCppClassAttribute.cs
- JulianCalendar.cs
- SqlFormatter.cs
- Assert.cs
- ComboBoxRenderer.cs
- IsolatedStoragePermission.cs
- DataViewSettingCollection.cs
- FrameworkContextData.cs
- PersonalizationProviderCollection.cs
- PasswordBox.cs
- RectAnimationUsingKeyFrames.cs
- Matrix3D.cs
- TextSelectionProcessor.cs
- PersistenceTypeAttribute.cs
- _ConnectStream.cs
- OracleMonthSpan.cs
- SecurityVersion.cs
- SetterBase.cs
- TrackingRecord.cs
- EntityDataSourceUtil.cs
- HintTextMaxWidthConverter.cs
- AppDomainManager.cs
- CatalogZoneBase.cs
- DetailsViewModeEventArgs.cs
- OrderByBuilder.cs
- MatrixTransform.cs
- ThreadStartException.cs
- StyleCollectionEditor.cs
- XamlClipboardData.cs
- KeyValueConfigurationElement.cs
- DetailsViewUpdatedEventArgs.cs
- TimeIntervalCollection.cs
- ParameterToken.cs
- PropertyMapper.cs
- EmptyWorkItem.cs
- FunctionMappingTranslator.cs
- NameTable.cs
- InstanceData.cs
- ExternalFile.cs
- ClaimSet.cs
- InvokeGenerator.cs
- SqlRowUpdatedEvent.cs
- MultiView.cs
- TypeInfo.cs
- SqlCacheDependencySection.cs
- ValidatorCompatibilityHelper.cs
- PrimitiveCodeDomSerializer.cs
- TextElementCollection.cs
- DocumentPageViewAutomationPeer.cs
- SkipStoryboardToFill.cs
- Listbox.cs
- StrongNameKeyPair.cs
- WindowsAuthenticationModule.cs
- DesignTimeData.cs
- RightsManagementEncryptionTransform.cs
- Maps.cs
- BackStopAuthenticationModule.cs
- SecureConversationServiceElement.cs
- DispatcherFrame.cs
- SecurityPermission.cs
- WorkflowApplicationException.cs
- TextContainerChangedEventArgs.cs
- LabelAutomationPeer.cs
- CancellationState.cs
- MultiTrigger.cs
- IndexingContentUnit.cs
- ToolStripTextBox.cs
- GCHandleCookieTable.cs
- BitmapEffectState.cs
- SpellCheck.cs
- QilFactory.cs
- XmlSchemaAnnotation.cs
- WorkflowFileItem.cs
- WorkflowPrinting.cs
- TableRow.cs
- SafeNativeMemoryHandle.cs
- SEHException.cs
- Collection.cs
- RemoteCryptoSignHashRequest.cs
- PrintDocument.cs
- MainMenu.cs
- BitmapEffectGroup.cs
- WebPartZoneDesigner.cs
- ActivationArguments.cs
- SplitterPanelDesigner.cs
- Int64.cs
- XmlMapping.cs
- StorageEntitySetMapping.cs
- HtmlInputSubmit.cs
- DBConcurrencyException.cs
- MruCache.cs
- DBSqlParserTable.cs