如果我们在加载到不同域中的代码中调用AppDomain.CurrentDomain
,我们将获得哪些域名引用?主域引用或加载当前代码的域引用?
假设我们在域内加载程序集,我们需要在事件AssemblyResolve
中探测程序集:我们可以使用AppDomain.CurrentDomain
来获取当前域引用,或者我们需要创建一种将域引用传递给它的方法吗?
答案 0 :(得分:2)
AppDomain.CurrentDomain返回运行代码的域。是的,在AssemblyResolve事件处理程序中使用它总是安全和正确的。该事件特定于每个AppDomain,并且当AppDomain需要一个它本身无法找到的程序集时将被触发。
事件处理程序的e
参数的类型为ResolveEventArgs。这只会告诉您程序集的名称,而不是需要它的AppDomain。假设你已经知道了。如果忘了,请使用CurrentDomain。
支持使用AppDomainSetup,因此您不需要此事件处理程序。