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
- ExportException.cs
- LineSegment.cs
- MessageDecoder.cs
- WebPartsSection.cs
- WebBrowserSiteBase.cs
- Socket.cs
- ColumnMapProcessor.cs
- TreeIterators.cs
- SurrogateDataContract.cs
- LineBreak.cs
- IChannel.cs
- XmlComplianceUtil.cs
- TypeRefElement.cs
- DrawingServices.cs
- DataSetViewSchema.cs
- SQLCharsStorage.cs
- XmlHierarchicalEnumerable.cs
- PcmConverter.cs
- DataObjectCopyingEventArgs.cs
- BitmapEffectInput.cs
- OrderByBuilder.cs
- SmiContext.cs
- QuotedPrintableStream.cs
- Rule.cs
- CanExecuteRoutedEventArgs.cs
- ObjectSecurity.cs
- DbConnectionOptions.cs
- DiagnosticStrings.cs
- RequestContext.cs
- AuthenticatingEventArgs.cs
- NotifyInputEventArgs.cs
- ListItemCollection.cs
- SQLInt32.cs
- UriParserTemplates.cs
- RegexCompilationInfo.cs
- ButtonBase.cs
- OperationInvokerTrace.cs
- CookieProtection.cs
- FixedElement.cs
- HybridDictionary.cs
- NegatedCellConstant.cs
- TabItemAutomationPeer.cs
- ConfigurationSectionHelper.cs
- DataBinder.cs
- IPEndPointCollection.cs
- CollectionsUtil.cs
- StyleCollection.cs
- FunctionParameter.cs
- CodeObjectCreateExpression.cs
- SettingsBase.cs
- Substitution.cs
- RegexStringValidator.cs
- FrameworkContextData.cs
- Point3DCollection.cs
- InputLanguageCollection.cs
- TCPListener.cs
- UInt16.cs
- KeyEvent.cs
- TemplateParser.cs
- ProviderConnectionPointCollection.cs
- SqlPersonalizationProvider.cs
- TransformDescriptor.cs
- ResXResourceWriter.cs
- DataTableTypeConverter.cs
- SecurityCriticalDataForSet.cs
- SqlTransaction.cs
- FormViewPagerRow.cs
- WebPartEditVerb.cs
- KeyValuePairs.cs
- PointAnimationUsingKeyFrames.cs
- VSWCFServiceContractGenerator.cs
- PageCodeDomTreeGenerator.cs
- Registry.cs
- LockedAssemblyCache.cs
- AcceleratedTokenProviderState.cs
- SspiNegotiationTokenAuthenticatorState.cs
- LineSegment.cs
- TabItemWrapperAutomationPeer.cs
- NumberFormatInfo.cs
- codemethodreferenceexpression.cs
- TextEditorDragDrop.cs
- ISAPIWorkerRequest.cs
- RawMouseInputReport.cs
- _NetRes.cs
- WebResourceUtil.cs
- UnionCqlBlock.cs
- TextBounds.cs
- XmlExpressionDumper.cs
- SchemaAttDef.cs
- IPAddressCollection.cs
- ResourceContainer.cs
- WorkflowView.cs
- NGCUIElementCollectionSerializerAsync.cs
- EventProxy.cs
- returneventsaver.cs
- StylusShape.cs
- DataPagerFieldCollection.cs
- XPathMessageFilterElementComparer.cs
- RowSpanVector.cs
- HtmlValidatorAdapter.cs