【发布时间】:2014-07-07 14:04:03
【问题描述】:
我正在尝试在 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() 正确处理插件,这意味着服务调用处于打开状态,并且在服务返回时代码将继续执行。
是否可以根据类型创建应用域?
【问题讨论】:
-
你为什么要自己做而不是使用maf?
-
这是我构建插件的遗留代码,但在构建插件时我发现插件没有正确处理。老实说,除了它代表什么,我对 maf 了解不多
标签: c# plugins types appdomain