c# - 为什么当 Assembly 在 CurrentDomain 中时会调用 AssemblyResolve?

标签 c# .net appdomain .net-assembly

我遇到的情况是 AppDomain.CurrentDomain.AssemblyResolve已使用 Assembly.Load(myAssemblyMemStream.ToArray()) 加载到当前域中的程序集被调用.

这是为什么?

我需要执行以下操作才能使其正常工作。这与 .NET 自动执行的操作有何不同?

Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
    return AppDomain.CurrentDomain
                    .GetAssemblies()
                    .First(x => x.FullName == args.Name);
}

最佳答案

加载上下文http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57143.aspx 。加载 byte[] 不会导致其他加载上下文中的程序集能够看到它。这是一项安全功能。

关于c# - 为什么当 Assembly 在 CurrentDomain 中时会调用 AssemblyResolve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305301/

相关文章:

.net - 我不明白应用程序域

c# - 如何序列化复杂的结构以通过 tcp/ip 发送?

c# - 如何模拟硬件来测量 .net 应用程序性能?

.net - 从 getter/setter 的 MethodInfo 中查找托管 PropertyInfo

c# - 代言人的优势是什么?

c# - 运算符 '==' 不能应用于类型 'method group' 的操作数

c# - 如何防止 CompileAssemblyFromSource 泄漏内存?

c# - 在 ASP.NET MVC 中呈现 View 与呈现 HTML 文件之间的性能差异是什么?

c# - 用户名认证网络服务

c# - Windbg 和查看 AppDomain 内容