C#错误?通用类型的载荷装配
|
我有一个可以像这样动态加载程序集的类:
Assembly asm = Assembly.LoadFile(args[1]);
runner.RunTestOnAssembly(asm);
然后另一个类对该程序集运行测试:
foreach (var cspecType in asm.GetTypes())
{
RunTestOnType(cspecType);
}
加载的程序集引用同一文件夹[Debug \\ Tests]中的其他程序集,而加载该程序集的程序位于[Debug]文件夹中。
加载的程序集(CalcSpecAsm):
public class CalcSpec : CSpecFacade<ICalc>
{
public CalcSpec()
: base(new Calc())
{
}
}
引用的程序集(CalcAsm):
public class Calc : ICalc
{
/// <summary>
/// Initalisation constructor
/// resets the Total value.
/// </summary>
public Calc()
{
Total = 0;
}
.....
CSpecFacade在另一个程序集中被引用。
现在的问题是,如果我加载程序集CalcSpecAsm,则会在GetTypes()上收到程序集loaderError,它无法解析对CalcAsm程序集的引用。
问题是这行代码:public class CalcSpec : CSpecFacade<ICalc>
如果我删除通用arg ICalc并在构造函数中对其进行初始化,则它可以完美运行,但这不是我想要的。
但是:如果我将loaderAssembly程序复制到[Debug \\ Test],然后运行它,则一切正常。
如何解决问题,以及原因是什么?
没有找到相关结果
已邀请:
1 个回复
粳饶瓢部
然后,在这种情况下,您将必须加载依赖项。
希望这会有所帮助。