<Application> 元素 (.NET Native)

作为应用程序范围内的类型和元数据可以反应在运行时间的类型成员的容器而服务,并将运行时反射策略应用到一个应用的所有程序元素。

<Directives> 元素 <Application> 元素 (rd.xml)

语法

<Application Activate="policy_setting"
             Browse="policy_setting"
             Dynamic="policy_setting"
             Serialize="policy_setting"
             DataContractSerializer="policy_setting"
             DataContractJsonSerializer="policy_setting"
             XmlSerializer="policy_setting"
             MarshalObject="policy_setting"
             MarshalDelegate="policy_setting"
             MarshalStructure="policy_setting" />

特性和元素

下列各节描述了特性、子元素和父元素。 在子元素表格中,策略指向在运行时间针对特定程序元素可用的一类元数据。

特性

属性 属性类型 说明
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 可选特性。 控制封送结构到本机代码的策略。

所有特性

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

子元素

元素 说明
<Assembly> 将策略应用到特定程序集中的所有类型。
<命名空间> 将策略应用到特定命名空间中的所有类型。
<类型> 将策略应用到一个特定类型,例如一个类或结构。
<TypeInstantiation> 将策略应用到一个构造泛型类型。 例如,一个 元素可以用来为一个 List<String> 类型定义策略。
<方法> 将策略应用到一个特定类型上的方法。
<MethodInstantiation> 将策略应用到一个构造泛型方法。
<属性> 将策略应用到一个特定类型上的属性。
<字段> 将策略应用到一个特定类型上的字段。
<事件> 将策略应用到一个特定类型上的事件。

父元素

元素 说明
<指令> 运行时指令文件的根元素。

注解

<Directives> 元素可以包含零个或一个 <Application> 元素。 单独一个反射指令文件中出现的多个 <Application> 元素不受支持。

<Application> 元素可通过以下方法之一使用:

  • 作为定义在运行时间需要元数据的程序元素的容器。 在这种情况下,<Application> 元素不需要具有任何特性。 在编译时间,编译器工具搜索 .NET Framework 核心库等所有库,以查找由 <Application> 元素的子元素识别出的程序元素。 相比而言,编译器工具仅搜素由 <Library> 元素指定的库,以查找由 <Library> 的子元素识别出的程序元素。

  • 作为为反射、序列化和互操作设置应用程序范围的策略的元素。 <Application> 元素的特性定义应用程序范围的策略,它可能会遭到 <Application><Library> 元素定义的子元素的改写。

另请参阅