加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 一种将汇编负载强制加载到当前域的正确方法

发布时间:2020-12-15 06:55:54 所属栏目:百科 来源:网络整理
导读:我有一个项目,使用几个类库作为我的项目的一部分,第一个AssemblyA被加载,然后装入AssemblyB.在AssemblyA中,有代码执行以下操作 var assemblies = AppDomain.CurrentDomain.GetAssemblies();var assemblyB = assemblies .Where(x=x.GetName() == "AssemblyB")
我有一个项目,使用几个类库作为我的项目的一部分,第一个AssemblyA被加载,然后装入AssemblyB.在AssemblyA中,有代码执行以下操作
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var assemblyB = assemblies
                .Where(x=>x.GetName() == "AssemblyB")
                .First();
var type = assemblyB.GetType("AssemblyB_Type");

不幸的是,当AssemblyA尝试这样做时,AssemblyB没有加载到CurrentDomain中,所以要加载该程序集,我正在做以下不必要的事情:

var x = typeof(AssemblyB.AssemblyB_Type);

编译器显示警告,这行不需要,虽然我找不到文字来解释它,否则它将无法正常工作,所以问题是,你如何正确地(在风水术语)强制汇编加载到CurrentDomain没有做无用的管道

解决方法

您现有的代码是最好的方式(AFAIK).

要摆脱警告,请将其更改为

typeof(AssemblyB.AssemblyB_Type).ToString();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读