首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有引用dll的C# Assembly.Load

具有引用dll的C# Assembly.Load
EN

Stack Overflow用户
提问于 2015-09-29 19:05:43
回答 1查看 1.3K关注 0票数 0

我使用以下代码在运行时加载dll,并存储它们的类供以后使用。

代码语言:javascript
运行
复制
public LoadDll(byte[] data)
{
    Assembly loadedAssembly = Assembly.Load(data);
    System.Type[] types = loadedAssembly.GetTypes();
    TypeRepo.Register(types);
}

这很好,但是如果我构建的dll引用了另一个dll,我就会得到错误“模块中的类无法加载”。调用GetTypes()时。

如何提供特定的文件路径以允许加载的程序集访问磁盘上的依赖项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-29 19:13:29

你应该和AppDomain.AssemblyResolve事件一起玩

见链接文件中的备注部分指出了什么:

ResolveEventHandler对此事件的责任是返回由ResolveEventArgs.Name属性指定的程序集,或者在程序集不被识别时返回null。程序集必须加载到执行上下文中;如果将其加载到仅反射上下文中,则导致引发此事件的加载失败。

因此,您需要执行一个Assembly.LoadFrom,通过从代码中定义的任意路径加载附属程序集来返回整个Assembly实例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32851900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档