C# · 12月 30, 2021

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

我有一个项目,使用几个类库作为我的项目的一部分,第一个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();