AmbientAttribute AmbientAttribute AmbientAttribute AmbientAttribute Class

定義

プロパティまたは型をアンビエントとして扱うよう指定しています。Specifies that a property or type should be treated as ambient. アンビエントの概念は XAML プロセッサがメンバーの型の所有者を確認する方法と関連します。The ambient concept relates to how XAML processors determine type owners of members.

public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
継承
AmbientAttributeAmbientAttributeAmbientAttributeAmbientAttribute
属性

注釈

アンビエントプロパティは、オブジェクトグラフを作成するときにパーサーコンテキストで値を使用できると想定されるプロパティですが、作成される直前の XAML ノードセットのために一般的な型メンバーの参照が中断されます。An ambient property is a property where the value is expected to be available in the parser context when creating an object graph, but where typical type-member lookup is suspended for purposes of the immediate XAML node set being created. アンビエント概念には、主に次の2つのシナリオがあります。There are two main scenarios for the ambient concept:

  • 同じオブジェクトの他のいくつかのプロパティは、オブジェクトプロパティの参照がどのように動作するかを指定します。Some other property of the same object influences and qualifies how that object-property lookup should work.

  • プロパティは、より大きな遅延メカニズムを表し、メンバー値を検索するためのアンビエント機能は、現在のオブジェクト内に含まれるすべてのオブジェクトに拡張されます。The property represents a larger deferral mechanism and the ambient capabilities for looking up a member value extend to all objects contained within the current object.

この属性は、アンビエントプロパティの検索動作を有効にするコンテナーが想定されている特定のプロパティに適用できます。また、プロパティに対してその値型のすべてのケースでアンビエントプロパティの動作を有効にするためにクラスに適用することもできます。This attribute can be applied to specific properties that have expected containers that enable an ambient property lookup behavior, or can be applied to a class to enable the ambient property behavior in all cases of that value type for a property.

AmbientAttributeを CLR メソッドに適用して、XAML アタッチ可能なプロパティの属性をアンビエントとしてサポートすることもできます。AmbientAttribute can also be applied to a CLR method, to support attributing a XAML attachable property as ambient. CLR の実装では、XAML の添付プロパティが実装されているか、 get setメソッドとメソッドを使用してアクセサーパターンとしてリフレクションに表されるため、これが必要になることがあります。This is potentially necessary because in a CLR implementation a XAML attached property is implemented/represented to reflection as an accessor pattern with get and set methods. 属性に対する実際の CLR プロパティが存在しないためAttributeTargetsPropertyの使用をに制限しても、アタッチ可能なメンバーをアンビエントとして指定することはできません。No actual CLR property to attribute exists, so restricting usage for AttributeTargets to Property would not have enabled specifying an attachable member as ambient. アンビエントとして報告するアタッチ可能なメンバーの場合は、 getアクセサーを属性として指定します。For an attachable member that you want to report as ambient, attribute the get accessor. アタッチ可能なメンバーのメソッドを明示的にサポートしていないメソッドは、属性を使用しないようにしてください。You should not attempt to attribute methods that are not specifically support methods of attachable members.

以前のバージョンの .NET Framework では、このクラスは WPF 固有のアセンブリ WindowsBase に存在していました。In previous versions of the .NET Framework, this class existed in the WPF-specific assembly WindowsBase. .NET Framework 4.NET Framework 4AmbientAttribute 、は、システムの .xaml アセンブリにあります。In .NET Framework 4.NET Framework 4, AmbientAttribute is in the System.Xaml assembly. 詳細については、「 Types Migrated from WPF to System.Xaml」を参照してください。For more information, see Types Migrated from WPF to System.Xaml.

アンビエント型 ( AmbientAttributeが型レベルで適用される型) は、プロパティの型を順序どおりに解決する必要がある特定の XAML 処理状況に使用できます。Ambient types (types where AmbientAttribute is applied at type level) can be used for certain XAML processing situations where the type of a property needs to be resolved out of order.

オブジェクトライターのシナリオObject Writer Scenarios

XAML オブジェクトライターを定義していて、が適用されているAmbientAttributeプロパティ、メソッド、または型が発生した場合は、通常、サービスにアクセスして、オブジェクトの書き込みに必要なアンビエントプロパティの参照動作を決定する必要があります。If you are defining a XAML object writer, and you encounter a property, method or type where AmbientAttribute is applied, you typically must access a service to determine the intended ambient property lookup behavior that is needed for writing out objects. 詳細については、「IAmbientProvider」を参照してください。For more information, see IAmbientProvider.

値コンバーターValue Converters

型コンバーターまたはマークアップ拡張機能は、間接的な型のマッピングを表すプロパティ (修飾の有無にかかわらず、文字列名によってメンバーまたは型を指定するプロパティなど) を処理するために、アンビエント情報を知る必要がある場合があります。Type converters or markup extensions might need to know the ambient information in order to process properties that represent indirect type mappings, such as properties that specify members or types by string names with or without qualification. このシナリオではAmbientAttribute 、は、値コンバーターのコードロジックに直接使用するためのものではありません。In this scenario, AmbientAttribute is not intended to be used directly for value converter code logic. 代わりに、値コンバーターは XAML ライターの処理動作に依存する必要がありますIAmbientProvider 。これは、呼び出されたときに、そのサービスコンテキストを値コンバーターメソッドに渡します。Rather, the value converter should rely on the XAML writer processing behavior, which will pass IAmbientProvider in its service contexts to your value converter methods when called.

AmbientAttribute の WPF シナリオWPF Scenarios for AmbientAttribute

  • Style ( Setter.Property ) のプロパティは、値内のプロパティ名のバッキング参照を検索するために必要なプロパティ名参照を修飾できます。TargetTypeA property of a Style (TargetType) can qualify the necessary property name lookups that are needed to find the backing references for property names in Setter.Property values.

  • Resourcesプロパティ(ResourceDictionaryの項目) およびテンプレートコンテンツ内のすべてのコンテンツは、他のピアに値としてアクセスできる必要があります。All content within a Resources property (items of a ResourceDictionary) as well as template content, should be able to access other peers as values. アンビエントとしResourcesてプロパティ全体を宣言すると、WPF XAML パーサーでこれを有効にするロジックが呼び出されます。Declaring the entire Resources property as ambient invokes logic that enables this in the WPF XAML parser.

ResourceDictionary型レベルで設定AmbientAttributeするシナリオの例については、「」を参照してください。See ResourceDictionary for an example of a scenario for setting AmbientAttribute at type level.

コンストラクター

AmbientAttribute() AmbientAttribute() AmbientAttribute() AmbientAttribute()

AmbientAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the AmbientAttribute class.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

プロパティ

TypeId TypeId TypeId TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

適用対象

こちらもご覧ください