C# – 将.NET程序集加载到单独的AppDomain中,以便卸载它

可能重复:
将DLL加载到单独的AppDomain中

将.NET程序集加载到单独的AppDomain中的正确方法是什么,这样您就可以访问其类型/类,但仍然可以卸载它(并重新加载它)。

这是前面讨论的切线: C# – 正确加载程序集,查找类和调用Run()方法

基本上,您只需创建新的AppDomain,然后调用AppDomain.CreateInstanceAndUnwrap来创建该类型。 这是一篇关于此过程的简单CodeProject文章 。

这里有一些技巧。 你不能直接引用Type(这会将类型加载到你当前的AppDomain中),而且这些对象都应该来自MarshallByRefObj 。 这将允许您“远程”使用该对象,这意味着不要将其加载到您的AppDomain中。