对应用程序域进行编程

应用程序域通常由运行时宿主以编程的方式来创建和操作。 但是,有时应用程序还可能要和应用程序域结合起来使用。 例如,应用程序可能将应用程序组件加载到域中以便能够在不停止整个应用程序的情况下卸载域(以及该组件)。

AppDomain 类是应用程序域的编程接口。 此类包括各种方法,这些方法可以创建和卸载域、创建域中各类型的实例以及注册各种通知(如应用程序域卸载)。 下表列出了常用的 AppDomain 方法。

AppDomain 方法

说明

CreateDomain

创建新的应用程序域。 建议使用此方法指定 AppDomainSetup 对象的重载形式。 这是设置新域的各个属性的首选方式,这些属性包括应用程序基(即该应用程序的根目录)、域的配置文件的位置、以及公共语言运行时用于将程序集加载到域中的搜索路径等。

ExecuteAssemblyExecuteAssemblyByName

执行应用程序域中的程序集。 这是一个实例方法,因此它可用来执行另一个应用程序域(您拥有对该域的引用)中的代码。

CreateInstanceAndUnwrap

在应用程序域中创建指定类型的实例,并返回一个代理。 使用此方法以避免将包含创建的类型的程序集加载到调用程序集中。

Unload

执行域的正常关闭。 只有应用程序域中正在运行的所有线程都已停止或域中不再有运行的线程之后,才卸载该应用程序域。

注意注意

公共语言运行时不支持全局方法序列化,因此不能使用委托来执行其他应用程序域中的全局方法。

公共语言运行时承载接口规范中介绍的非托管接口也提供对应用程序域的访问。 运行时宿主可以使用非托管代码的接口在进程内创建应用程序域和获取对这些应用程序域的访问。

请参见

参考

AppDomain

AppDomain 方法

概念

应用程序域