信息
您所需的主题如下所示。但此主题未包含在此库中。

Assembly 类

2013/12/13

表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言运行时应用程序构造块。

System.Object
  System.Reflection.Assembly

Namespace:  System.Reflection
程序集:  mscorlib(位于 mscorlib.dll 中)

public abstract class Assembly : ICustomAttributeProvider

Assembly 类型公开以下成员。

  名称说明
公共属性CustomAttributes获取包含此程序集的自定义特性的集合。
公共属性DefinedTypes获取此程序集中定义的类型的集合。
公共属性EntryPoint获取此程序集的入口点。
公共属性ExportedTypes获取此程序集中定义的公共类型的集合,这些公共类型在程序集外可见。
公共属性FullName获取程序集的显示名称。
公共属性ImageRuntimeVersion获取表示公共语言运行时 (CLR) 的版本的字符串,该信息保存在包含清单的文件中。
公共属性IsDynamic获取一个值,该值指示当前程序集是否是通过使用反射发出在当前进程中动态生成的。
公共属性ManifestModule获取包含当前程序集清单的模块。
公共属性Modules获取包含此程序集中的模块的集合。
返回顶部

  名称说明
公共方法CreateInstance使用区分大小写的搜索,从此程序集中查找指定的类型,然后使用系统激活器创建它的实例。
公共方法Equals确定此程序集和指定的对象是否相等。 (重写 Object.Equals(Object)。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法静态成员GetCallingAssembly返回调用当前正在执行的方法的方法的 Assembly
公共方法GetCustomAttributes(Boolean)获取此程序集的所有自定义属性。
公共方法GetCustomAttributes(Type, Boolean)获取按类型指定的此程序集的自定义属性。
公共方法静态成员GetExecutingAssembly获取包含当前执行的代码的程序集。
公共方法GetExportedTypes获取此程序集中定义的类型,这些类型在程序集外可见。
公共方法GetHashCode返回此实例的哈希代码。 (重写 Object.GetHashCode()。)
公共方法GetManifestResourceInfo返回关于给定资源如何保持的信息。
公共方法GetManifestResourceNames返回此程序集中的所有资源的名称。
公共方法GetManifestResourceStream(String)从此程序集加载指定的清单资源。
公共方法GetManifestResourceStream(Type, String)从此程序集加载指定清单资源,清单资源的范围由指定类型的命名空间确定。
公共方法GetModules获取作为此程序集的一部分的所有模块。
公共方法GetName()安全非常关键。 获取此程序集的 AssemblyName
公共方法GetName(Boolean)安全非常关键。 获取此程序集的 AssemblyName,并按 copiedName 指定的那样设置基本代码。
公共方法GetSatelliteAssembly(CultureInfo)获取指定区域性的附属程序集。
公共方法GetSatelliteAssembly(CultureInfo, Version)获取指定区域性的附属程序集的指定版本。
公共方法GetType()获取当前实例的 Type (从 Object 继承。)
公共方法GetType(String)获取程序集实例中具有指定名称的 Type 对象。
公共方法GetType(String, Boolean)获取程序集实例中具有指定名称的 Type 对象,并选择在找不到该类型时引发异常。
公共方法GetTypes获取此程序集中定义的类型。
公共方法IsDefined指示指定的属性是否已应用于该程序集。
公共方法静态成员Load(AssemblyName)安全非常关键。 在给定程序集的 AssemblyName 的情况下,加载程序集。
公共方法静态成员Load(String)通过给定程序集的长格式名称加载程序集。
公共方法静态成员LoadFrom安全非常关键。 已知程序集的文件名或路径,加载程序集。
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法ToString返回程序集的全名,即所谓的显示名称。 (重写 Object.ToString()。)
返回顶部

  名称说明
公共扩展方法GetCustomAttribute(Type)重载。 检索应用于指定的程序集的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>()重载。 检索应用于指定的程序集的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes()重载。 检索应用于指定程序集的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Type)重载。 检索应用于指定程序集的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>()重载。 检索应用于指定程序集的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法IsDefined指示是否将指定类型的自定义特性应用于指定的程序集。 (由 CustomAttributeExtensions 定义。)
返回顶部

使用 Assembly 类可以加载程序集、浏览程序集的元数据和构成部分、发现程序集中包含的类型以及创建这些类型的实例。

为了动态加载程序集,Assembly 类提供静态 Load(String) 方法重载(在 Visual Basic 中为 Shared 方法重载)。程序集加载到 Windows Phone 应用程序域中。其他重载只能由 .NET Framework 中的可信程序集调用。

若要获取当前执行的程序集的 Assembly 对象,可以使用 GetExecutingAssembly 方法。

Assembly 类的许多成员都提供有关程序集的信息。例如:

GetTypes 方法列出程序集中的所有类型。GetExportedTypes 方法列出对程序集以外的调用方可见的类型。GetType 方法可用于在程序集中搜索特定类型。CreateInstance 方法可用于在程序集中搜索和创建类型的实例。

下面的代码示例演示如何获取当前执行的程序集,如何创建该程序集中包含的某个类型的实例以及如何用后期绑定调用该类型的方法之一。为此,该代码示例定义了一个名为 Example 的类,该类具有一个名为 SampleMethod 的方法。该类的构造函数接受整数,用于计算方法的返回值。

该代码示例还演示如何使用 GetName 方法来获取可用于分析程序集的全名的 AssemblyName 对象。该示例显示程序集的版本号和 EntryPoint 属性。


using System;
using System.Reflection;
using System.Security.Permissions;

[assembly: AssemblyVersionAttribute("1.0.2000.0")]

public class Example
{
   private static System.Windows.Controls.TextBlock outputBlock;
   private int factor;

   public Example() : this(42) {}
   public Example(int f)
   {
      factor = f;
   }

   public int SampleMethod(int x)
   {
      outputBlock.Text += String.Format("\nExample.SampleMethod({0}) executes.", x) + "\n";
      return x * factor;
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      Example.outputBlock = outputBlock;
      Assembly assem = Assembly.GetExecutingAssembly();

      outputBlock.Text += "Assembly Full Name:" + "\n";
      outputBlock.Text += assem.FullName + "\n";

      // Create an object from the assembly, using the default constructor.
      Object o = assem.CreateInstance("Example");

      // Make a late-bound call to an instance method of the object.    
      MethodInfo m = assem.GetType("Example").GetMethod("SampleMethod");
      Object ret = m.Invoke(o, new Object[] { 42 });
      outputBlock.Text += String.Format("SampleMethod returned {0}.\n", ret);

      outputBlock.Text += "\nAssembly entry point:\n";
      MethodInfo entry = assem.EntryPoint;
      if (entry == null)
      {
         outputBlock.Text += "No entry point defined for the assembly.\n";
      }
      else
      {
         outputBlock.Text += entry.ToString() + "\n";
      }
   }
}

/* This code example produces output similar to the following:

Assembly Full Name:
source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null

Example.SampleMethod(42) executes.
SampleMethod returned 1784.

Assembly entry point:
No entry point defined for the assembly.
 */


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型是线程安全的。

显示: