属性 (C++/CX)
属性は、角かっこ内で Windows ランタイムの型とメソッドの先頭に付加して、メタデータ作成での特定の動作を指定できるようにする特殊な種類の ref クラスです。 複数の定義済み属性 (Windows::Foundation::Metadata::WebHostHidden など) は通常 C++/CX コードで使用されます。 この例では、属性がクラスに適用される方法を示します。
[Windows::Foundation::Metadata::WebHostHidden]
public ref class MyClass : Windows::UI::Xaml::DependencyObject {};
カスタム属性
カスタム属性も定義できます。 カスタム属性は、次の Windows ランタイム規則に従う必要があります。
カスタム属性は、パブリック フィールドだけを格納できます。
カスタム属性フィールドは、属性がクラスに適用されるときに初期化できます。
フィールドは、次に示すいずれかの型になることができます。
int32 (int)
uint32 (unsigned int)
[bool]
Platform::String^
Windows::Foundation::HResult
Platform::Type^
パブリック列挙型クラス (ユーザー定義列挙型を含む)
次の例では、カスタム属性を定義し、使用時に初期化する方法を示します。
[Windows::Foundation::Metadata::WebHostHiddenAttribute]
public ref class MyCustomAttribute sealed : Platform::Metadata::Attribute {
public:
int Num;
Platform::String^ Msg;
};
[MyCustomAttribute(Num=5, Msg="Hello")]
public ref class Class1 sealed
{
public:
Class1();
};