多个AppDomain - 什么域“AppDomain.CurrentDomain”返回?

时间:2012-12-13 14:13:52

标签: c# multithreading process assemblies .net-assembly

如果我们在加载到不同域中的代码中调用AppDomain.CurrentDomain,我们将获得哪些域名引用?主域引用或加载当前代码的域引用?

假设我们在域内加载程序集,我们需要在事件AssemblyResolve中探测程序集:我们可以使用AppDomain.CurrentDomain来获取当前域引用,或者我们需要创建一种将域引用传递给它的方法吗?

1 个答案:

答案 0 :(得分:2)

AppDomain.CurrentDomain返回运行代码的域。是的,在AssemblyResolve事件处理程序中使用它总是安全和正确的。该事件特定于每个AppDomain,并且当AppDomain需要一个它本身无法找到的程序集时将被触发。

事件处理程序的e参数的类型为ResolveEventArgs。这只会告诉您程序集的名称,而不是需要它的AppDomain。假设你已经知道了。如果忘了,请使用CurrentDomain。

支持使用AppDomainSetup,因此您不需要此事件处理程序。