<GenericParameter> 要素 (.NET ネイティブ)

ジェネリック型またはメソッドのパラメーターの型にポリシーを適用します。

構文

<GenericParameter Name="generic_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 全般 必須の属性です。 ジェネリック パラメーターの名前。 たとえば、ジェネリック デリゲート Func<T1,T2,TResult> の場合、デリゲートの戻り値に実行時ポリシーを適用するための Name 属性の値は "TResult" です。
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 属性

[値] 説明
generic_parameter_name 必須の属性です。 ジェネリック型パラメーターの名前。 たとえば、ジェネリック デリゲート Func<T1,T2,TResult> の場合、generic_parameter_name の値 "TResult" によって、デリゲートの戻り値に実行時ポリシーが適用されます。

その他すべての属性

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

子要素

なし。

親要素

要素 説明
<メソッド> コンストラクターまたはメソッドにランタイム リフレクション ポリシーを適用します。
<種類> クラスや構造体など、特定の型にランタイム リフレクション ポリシーを適用します。

解説

<GenericParameter> 要素は、<Method> 要素か <Type> 要素の子で、ジェネリック型またはメソッド シグネチャでの名前によって指定される、特定のジェネリック型パラメーターにポリシーを適用するために使用されます。

<GenericParameter> 要素は、シリアライザーで使用する場合に最も役立ちます。 次の例では、<GenericParameter> 要素を使用して、NewtonSoft JSON シリアライザーの JsonConvert.DeserializeObject<T>(String) メソッドのオーバーロードの呼び出しで、T 型にポリシーを適用します。

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

関連項目