<Assembly> 元素 (.NET Native)

将运行时反射策略应用到指定程序集中的所有类型。

语法

<Assembly Name="assembly_name"
          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" />

特性和元素

下列各节描述了特性、子元素和父元素。

特性

属性 属性类型 说明
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 说明
assembly_name 程序集的简单名称,不要包含文件扩展名。 此特性对应 AssemblyName.Name 属性。 例如,一个名为 Extensions.dll 的程序集的名称为“Extensions”。

你也可以指定文本字符串 *Application*,从而将策略应用到你的程序包中的所有程序集,而不管这些程序集是否已加载。 *Application* 从不会将策略应用到 .NET Framework 程序集。

所有其他特性

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

子元素

元素 说明
<命名空间> 将反射策略应用到一个子命名空间中的所有类型。
<类型> 将反射策略应用到一个类型。
<TypeInstantiation> 将反射策略应用到一个构造泛型类型。

父元素

元素 说明
<应用程序> 作为应用程序范围内的类型和元数据可以反应在运行时间的类型成员的容器而服务。 <Application> 元素可包含零个、一个或多个 <Assembly> 元素。
<库> 定义包含元数据在运行时间可以用于反射的类型和类型成员的程序集。 <Library> 元素可包含零个或一个 <Assembly> 元素。

注解

<Assembly> 元素为一个程序集中的所有类型定义运行时策略。 它不同于 <Library> 元素,后者指定一个库但依赖其子元素定义运行时反射策略。 <Assembly> 元素将应用到一个程序集中的所有类型,除非这些类型遭到一个子元素的替代。

以下实例展示了你该如何通过分配给 Name 特性一个“Application”值,从而将运行时策略应用到你的应用包内部程序集中的所有类型。 <Assembly> 元素必须是 <Application> 元素的子元素。

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
  <Application>
     <Assembly Name="*Application*" Dynamic="Required All" />
  </Application>
</Directives>

ActivateBrowseDynamicSerialize 特性都是可选项。 然而,<Assembly> 元素必须至少包含这些属性中的一个。

另请参阅