从System.Type在AppDomain中创建实例

时间:2014-07-07 14:04:03

标签: c# plugins types appdomain

我正在尝试在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()来正确处理插件,这意味着服务调用保持打开状态,代码将在服务返回时继续执行。

是否可以从类型创建应用域?

1 个答案:

答案 0 :(得分:-1)

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

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