Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ByteStack.cs
- AdPostCacheSubstitution.cs
- CompilerResults.cs
- GridViewColumnCollectionChangedEventArgs.cs
- CodePropertyReferenceExpression.cs
- TextTreeInsertElementUndoUnit.cs
- _KerberosClient.cs
- GroupStyle.cs
- ProfileSection.cs
- PermissionSetEnumerator.cs
- thaishape.cs
- unsafenativemethodsother.cs
- ResolveNextArgumentWorkItem.cs
- MappingMetadataHelper.cs
- WizardPanel.cs
- ContextMenu.cs
- IsolatedStorageFile.cs
- HttpCacheParams.cs
- ForeignKeyConstraint.cs
- SqlDependencyUtils.cs
- AuthenticationConfig.cs
- NTAccount.cs
- DataGridTemplateColumn.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- ResourceWriter.cs
- RealProxy.cs
- CheckBoxField.cs
- Rss20FeedFormatter.cs
- StoreItemCollection.cs
- DesignerCalendarAdapter.cs
- PropertyGeneratedEventArgs.cs
- SignatureHelper.cs
- CharEntityEncoderFallback.cs
- ReadOnlyNameValueCollection.cs
- WebDescriptionAttribute.cs
- WebException.cs
- NodeFunctions.cs
- MarkupCompilePass1.cs
- PrtTicket_Editor.cs
- FlowLayoutPanel.cs
- BuildManager.cs
- newitemfactory.cs
- HttpCapabilitiesBase.cs
- SchemaNamespaceManager.cs
- AnchoredBlock.cs
- FloaterParaClient.cs
- SqlTopReducer.cs
- StylusEditingBehavior.cs
- Msec.cs
- TimeSpanMinutesConverter.cs
- FastEncoderWindow.cs
- BitSet.cs
- FileRecordSequenceHelper.cs
- SessionEndedEventArgs.cs
- BinarySerializer.cs
- ProviderSettingsCollection.cs
- TableProviderWrapper.cs
- EncoderParameters.cs
- RtfToXamlReader.cs
- UInt16Converter.cs
- SafePEFileHandle.cs
- NetworkInformationException.cs
- PrintControllerWithStatusDialog.cs
- RepeaterItemEventArgs.cs
- ListViewContainer.cs
- HyperLinkStyle.cs
- CacheRequest.cs
- EventBindingService.cs
- InputElement.cs
- SponsorHelper.cs
- QuadraticBezierSegment.cs
- RegexCharClass.cs
- ImageClickEventArgs.cs
- ProfileManager.cs
- SynchronizedInputHelper.cs
- DataGridAddNewRow.cs
- ImageCodecInfoPrivate.cs
- EntityDataSourceWrapperCollection.cs
- ReflectTypeDescriptionProvider.cs
- DesignerSerializationOptionsAttribute.cs
- TaiwanLunisolarCalendar.cs
- RawStylusSystemGestureInputReport.cs
- UriTemplate.cs
- SqlDataSourceSelectingEventArgs.cs
- XamlGridLengthSerializer.cs
- TaskExceptionHolder.cs
- RectangleHotSpot.cs
- ClientScriptItemCollection.cs
- ImageListDesigner.cs
- DateTimeConstantAttribute.cs
- RectValueSerializer.cs
- FixedElement.cs
- DefaultValueConverter.cs
- RoleBoolean.cs
- EpmCustomContentSerializer.cs
- InkCanvasAutomationPeer.cs
- BitmapMetadataEnumerator.cs
- XmlAnyElementAttribute.cs
- XmlDataLoader.cs
- SettingsAttributeDictionary.cs