<GenericParameter> 元素 (.NET Native)

将策略应用到一个泛型类型或方法的参数类型。

语法

<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 特性

Value 说明
generic_parameter_name 必需的特性。 泛型类型参数的名称。 例如,对于泛型委托 Func<T1,T2,TResult>generic_parameter_name 值“TResult”将运行时策略应用于委托的返回值。

所有其他特性

Value 说明
策略_设置 该设置将应用到这种策略类型。 可能值为 AllPublicPublicAndInternalRequired PublicRequired PublicAndInternal 以及 Required All。 有关详细信息,请参阅运行时指令策略设置

子元素

无。

父元素

元素 说明
<方法> 将运行时反射策略应用到一个构造函数或方法。
<类型> 将运行时反射策略应用到一个特定类型,例如一个类或结构。

注解

<GenericParameter> 元素是 <Method><Type> 元素的子元素,用于将策略应用到一个特定泛型类型参数,该参数由其在泛型类型或方法签名中的名称指定。

<GenericParameter> 元素在同序列化程序一起使用时非常有用。 以下示例在调用 NewtonSoft JSON 序列化程序的 JsonConvert.DeserializeObject<T>(String) 方法重载时使用 <GenericParameter> 元素将策略应用于类型 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>

另请参阅