<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 特性的值为“接口类型”。
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 特性

Value 说明
parameter_name 类型 Type 的参数名称。 例如,对于方法签名 Type.GetInterfaceMap(Type interfaceType)Name 特性的值为“接口类型”。

所有其他特性

Value 说明
策略_设置 该设置将应用到这种策略类型。 可能值为 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 序列化程序使用。

另请参阅