从System.Type在AppDomain中创建实例

本文关键字:创建 实例 AppDomain System Type | 更新日期: 2023-09-27 18:11:51

我正在尝试在AppDomain中创建一个实例。因此,我可以为我的每个插件创建一个单独的AppDomain,并在使用Unload方法关闭它们时正确地处置它们。

到目前为止,我有一个IEnumerator的所有插件和我循环通过他们执行以下代码。

Type temp = (Type)enumerator.Current;
AppDomain ad = AppDomain.CreateDomain(temp.FullName);
object obj = ad.CreateInstance(temp.Assembly.FullName, temp.FullName);

但是它在第三行崩溃,说它无法加载文件或程序集。

以前我使用:

object obj = Activator.CreateInstance((Type)enumerator.Current);

但是发现我不能通过调用base.dispose()正确地处置插件,这意味着服务调用被打开,当服务返回时代码将继续执行。

是否可以从一个类型创建一个应用程序域?

从System.Type在AppDomain中创建实例

好了,我发现我的错误了。它应该是:

object obj = ad.CreateInstanceFrom(temp.Assembly.Location, temp.FullName);