【发布时间】:2010-11-16 17:53:53
【问题描述】:
将 .NET 程序集加载到单独的 AppDomain 中的正确方法是什么,以便您可以访问其类型/类但仍然能够卸载(并重新加载)。
这是之前讨论的切线: C# - Correct Way to Load Assembly, Find Class and Call Run() Method
【问题讨论】:
标签: c# .net reflection dynamic assemblies
将 .NET 程序集加载到单独的 AppDomain 中的正确方法是什么,以便您可以访问其类型/类但仍然能够卸载(并重新加载)。
这是之前讨论的切线: C# - Correct Way to Load Assembly, Find Class and Call Run() Method
【问题讨论】:
标签: c# .net reflection dynamic assemblies
基本上,您只需创建新的 AppDomain,然后调用 AppDomain.CreateInstanceAndUnwrap 来创建类型。这是一个关于这个过程的简单CodeProject article。
这里有一些技巧。您永远不能直接引用类型(这会将类型加载到您当前的 AppDomain 中),并且所有对象都应该派生自 MarshallByRefObj。这将允许您“远程”使用该对象,这意味着阻止它加载到您的 AppDomain 中。
【讨论】: