<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 | このポリシーの種類に適用する設定です。 指定できる値は、All 、Public 、PublicAndInternal 、Required Public 、Required 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 シリアライザーで使用可能になります。