<TypeParameter> 要素 (.NET Native)

メソッドに渡される型引数により表される型にポリシーを適用します。

構文

<Parameter Name="parameter_name"
           Activate="policy_type"
           Browse="policy_type"
           Dynamic="policy_type"
           Serialize="policy_type"
           DataContractSerializer="policy_type"
           DataContractJsonSerializer="policy_type"
           XmlSerializer="policy_type"
           MarshalObject="policy_type"
           MarshalDelegate="policy_type"
           MarshalStructure="policy_type" />

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 属性の型 説明
Name 全般 必須の属性です。 Type 型のパラメーターの名前。 たとえば、メソッド シグネチャ Type.GetInterfaceMap(Type interfaceType) の場合、Name 属性の値は "interfaceType" です。
Activate リフレクション 省略可能な属性です。 コンストラクターへの実行時アクセスを制御して、インスタンスのアクティブ化を有効にします。
Browse リフレクション 省略可能な属性です。 プログラム要素に関する情報の照会を制御しますが、実行時アクセスは有効にしません。
Dynamic リフレクション 省略可能な属性です。 コンストラクター、メソッド、フィールド、プロパティ、およびイベントを含むすべての型のメンバーへの実行時アクセスを制御して、動的プログラミングを有効にします。
Serialize シリアル化 省略可能な属性です。 コンストラクター、フィールド、およびプロパティへの実行時アクセスを制御し、Newtonsoft の JSON シリアライザーなどのライブラリによって型インスタンスをシリアル化および逆シリアル化できるようにします。
DataContractSerializer シリアル化 省略可能な属性です。 System.Runtime.Serialization.DataContractSerializer クラスを使用するシリアル化のポリシーを制御します。
DataContractJsonSerializer シリアル化 省略可能な属性です。 System.Runtime.Serialization.Json.DataContractJsonSerializer クラスを使用する JSON シリアル化のポリシーを制御します。
XmlSerializer シリアル化 省略可能な属性です。 System.Xml.Serialization.XmlSerializer クラスを使用する XML シリアル化のポリシーを制御します。
MarshalObject Interop 省略可能な属性です。 Windows ランタイムと COM に参照型をマーシャリングするためのポリシーを制御します。
MarshalDelegate Interop 省略可能な属性です。 ネイティブ コードへの関数ポインターとしてデリゲート型をマーシャリングするためのポリシーを制御します。
MarshalStructure Interop 省略可能な属性です。 値型をネイティブ コードにマーシャリングするためのポリシーを制御します。

Name 属性

[値] 説明
parameter_name Type 型のパラメーターの名前。 たとえば、メソッド シグネチャ Type.GetInterfaceMap(Type interfaceType) の場合、Name 属性の値は "interfaceType" です。

その他すべての属性

[値] 説明
policy_setting このポリシーの種類に適用する設定です。 指定できる値は、AllPublicPublicAndInternalRequired PublicRequired PublicAndInternal、および Required All です。 詳細については、「ランタイム ディレクティブのポリシー設定」を参照してください。

子要素

なし。

親要素

要素 説明
<メソッド> コンストラクターまたはメソッドにランタイム リフレクション ポリシーを適用します。

解説

<TypeParameter> 要素は <Parameter> 要素に似ていますが、Type 型のパラメーターにのみ適用できる点が異なります。 これは、実行時に Name 属性により指定される型引数で表されるすべての型にポリシーを適用します。

たとえば、NewtonSoft の JSON シリアライザーには静的 JsonConvert.DeserializeObject(String value, Type type) メソッドが含まれています。 次のリフレクション ディレクティブは、

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
   <Type Name="Newtonsoft.Json.JsonConvert" >
      <Method Name="DeserializeObject">
         <GenericParameter Name="type" Serialize="Required All" />
      </Method>
   </Type>
</Directives>

type 引数により表されるランタイム型のメタデータをシリアル化で使用できるようにする必要があることを示しています。 これらのランタイム ディレクティブが次のソース コードを含むプロジェクトに適用された場合、

Type t = typeof(StockQuote);
Object obj = JsonConvert.DeserializeObject(data, t);

リフレクション ディレクティブによって、StockQuote 型のメタデータが実行時に NewtonSoft の JSON シリアライザーで使用可能になります。

関連項目