Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NativeMethods.cs
- XmlSchemaSimpleContentRestriction.cs
- DataGridBoolColumn.cs
- MarkupWriter.cs
- WebPartConnectionsCancelEventArgs.cs
- JapaneseCalendar.cs
- FixedNode.cs
- TransformCryptoHandle.cs
- Compilation.cs
- MailAddressParser.cs
- Viewport3DAutomationPeer.cs
- DateTimeValueSerializerContext.cs
- SynchronizedInputPattern.cs
- AstTree.cs
- TdsParserStaticMethods.cs
- X509Certificate.cs
- Pair.cs
- CharacterMetrics.cs
- DataBindEngine.cs
- InstanceDescriptor.cs
- AsyncCodeActivity.cs
- DecimalKeyFrameCollection.cs
- SQLMembershipProvider.cs
- Mutex.cs
- ToolStripDropDownButton.cs
- SlipBehavior.cs
- DBSchemaRow.cs
- CallTemplateAction.cs
- BitmapFrameEncode.cs
- SQLMoneyStorage.cs
- EdgeProfileValidation.cs
- HttpEncoder.cs
- TextMetrics.cs
- FlowSwitch.cs
- Attributes.cs
- ListItemCollection.cs
- ItemCollection.cs
- SRef.cs
- EntityDataSourceConfigureObjectContext.cs
- TextTrailingWordEllipsis.cs
- SimpleTypeResolver.cs
- SerialReceived.cs
- SplineQuaternionKeyFrame.cs
- PlainXmlDeserializer.cs
- BufferBuilder.cs
- EndpointDesigner.cs
- ProcessProtocolHandler.cs
- StylusSystemGestureEventArgs.cs
- CompilerGeneratedAttribute.cs
- DataPager.cs
- CannotUnloadAppDomainException.cs
- ControlCachePolicy.cs
- RoutedPropertyChangedEventArgs.cs
- Point3DConverter.cs
- ButtonAutomationPeer.cs
- httpapplicationstate.cs
- EpmCustomContentSerializer.cs
- SR.cs
- PassportAuthenticationEventArgs.cs
- WebPartVerbsEventArgs.cs
- CookieHandler.cs
- OrderedEnumerableRowCollection.cs
- ClientScriptManager.cs
- SafeMILHandle.cs
- BrowserDefinitionCollection.cs
- ProvidePropertyAttribute.cs
- UniqueIdentifierService.cs
- PartialCachingAttribute.cs
- WebPartsSection.cs
- EdmSchemaAttribute.cs
- Matrix3DStack.cs
- InvalidComObjectException.cs
- SessionEndingEventArgs.cs
- AttachedAnnotationChangedEventArgs.cs
- ReadOnlyCollectionBase.cs
- SqlGenericUtil.cs
- CompiledIdentityConstraint.cs
- SchemaImporter.cs
- FocusChangedEventArgs.cs
- ObjectMemberMapping.cs
- ProcessHostConfigUtils.cs
- ListDictionaryInternal.cs
- User.cs
- BaseAppDomainProtocolHandler.cs
- URLIdentityPermission.cs
- Normalization.cs
- MethodToken.cs
- NetSectionGroup.cs
- DataContractSerializerServiceBehavior.cs
- Error.cs
- StylusSystemGestureEventArgs.cs
- DateTimeOffsetConverter.cs
- OdbcConnectionStringbuilder.cs
- rsa.cs
- InputScope.cs
- CodeStatementCollection.cs
- WindowsListBox.cs
- ImageField.cs
- TlsSspiNegotiation.cs
- DashStyle.cs