创建应用程序域并加载程序集

Posted

技术标签:

【中文标题】创建应用程序域并加载程序集【英文标题】:Create application domain and load assembly 【发布时间】:2011-06-19 18:37:56 【问题描述】:

我想创建一个具有默认权限的应用程序域,并将程序集加载到具有默认权限的应用程序域中并执行程序集内的方法。

【问题讨论】:

【参考方案1】:

您可以查看 MSDN 上的 following article。或者,如果您想在另一个 AppDomain 中构造某种类型的实例(假设该类型具有默认构造函数):

var domain = AppDomain.CreateDomain("NewAppDomain");
var path = @"C:\work\SomeAssembly.dll";
var t = typeof(SomeType);
var instance = (SomeType)domain.CreateInstanceFromAndUnwrap(path, t.FullName);

使用此方法返回的 instance 变量位于您新创建的应用程序域中,您可以对其进行操作。

【讨论】:

您引用的链接已失效。【参考方案2】:

也许这有帮助

Can I reload an assembly in Mono CSharpRepl?

var dom = AppDomain.CreateDomain("tmp");
dom.Load("System.Core");
AppDomain.Unload(dom);

另见

Using multiple versions of the same DLL

【讨论】:

以上是关于创建应用程序域并加载程序集的主要内容,如果未能解决你的问题,请参考以下文章

在 NUnit 测试中创建应用程序域的异常

C#使用反射加载多个程序集

C# 通过 AppDomain 应用程序域实现程序集动态卸载或加载

C# 通过 AppDomain 应用程序域实现程序集动态卸载或加载

C#动态加载dll 时程序集的卸载问题

FileNotFoundException:“无法加载文件或程序集”尽管程序集存在 [关闭]