<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>,“TResult”的一个 generic_parameter_name 值将运行时策略应用到该委托的返回值。 |
所有其他特性
Value | 说明 |
---|---|
策略_设置 | 该设置将应用到这种策略类型。 可能值为 All 、Public 、PublicAndInternal 、Required Public 、Required 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>