程序集具有以下特点:
-
程序集作为 .exe 或 .dll 文件实现。
-
通过将程序集放在全局程序集缓存中,可在多个应用程序之间共享程序集。
-
要将程序集包含在全局程序集缓存中,必须对程序集进行强命名。有关更多信息,请参见。
-
程序集仅在需要时才加载到内存中。
-
可以使用反射以编程方式获取关于程序集的信息。有关更多信息,请参见主题。
-
如果加载程序集的目的只是对其进行检查,应使用诸如 的方法。
- 可以在单个应用程序中使用相同程序集的两个版本。有关更多信息,请参见 。
应用程序域
Code
//下面的代码示例创建一个新的应用程序域,然后加载并执行以前生成的程序集 HelloWorld.exe,该程序集存储在驱动器 C 上。
static void Main()
{
// Create an Application Domain:
System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");
// Load and execute an assembly:
newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");
// Unload the application domain:
System.AppDomain.Unload(newDomain);
}
//下面的代码示例创建一个新的应用程序域,然后加载并执行以前生成的程序集 HelloWorld.exe,该程序集存储在驱动器 C 上。
static void Main()
{
// Create an Application Domain:
System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");
// Load and execute an assembly:
newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");
// Unload the application domain:
System.AppDomain.Unload(newDomain);
}
如何:创建应用程序域
当需要应用程序域时,公共语言运行库宿主会自动创建它们。不过,您可以创建自己的应用程序域并将它们加载到需要亲自管理的程序集中。您也可以创建从中执行代码的应用程序域。
若要创建新的应用程序域,可使用 类中某个重载的 CreateDomain 方法。您可以为应用程序域命名并按该名称来引用应用程序域。
下面的示例创建新的应用程序域,并为它指定名称 MyDomain,然后将宿主域的名称和新创建的子应用程序域输出到控制台。
Code
using System;
using System.Reflection;
class AppDomain1
{
public static void Main()
{
Console.WriteLine("Creating new AppDomain.");
AppDomain domain = AppDomain.CreateDomain("MyDomain");
Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
Console.WriteLine("child domain: " + domain.FriendlyName);
}
}
using System;
using System.Reflection;
class AppDomain1
{
public static void Main()
{
Console.WriteLine("Creating new AppDomain.");
AppDomain domain = AppDomain.CreateDomain("MyDomain");
Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
Console.WriteLine("child domain: " + domain.FriendlyName);
}
}