想象一下我有一些项目的解决方案。在项目中
Proj1.BL
我有抽象类
MyAbstractClass
,和(
强烈的要求
)我只能从另一个解决方案中继承。所有这些都将只包含一个类(例如。
DerivedClass : MyAbstractClass
),将引用第一个解决方案中的相应项目(
项目1.BL
,
Proj1.DataModel
等),并将编译为DLL(类库)。总之,这些DLL(
另一个强烈要求
)将存储在
$(OutDir of first solution)\Externals
.
我的问题是:如何在第一个解决方案中正确加载这些程序集?我试过这样的方法:
public static Type LoadType(string fileName)
{
if (fileName == null) throw new ArgumentNullException("fileName");
fileName = Path.Combine("Externals", fileName);
if (!File.Exists(fileName)) throw new ApplicationException("File does not exist.");
return
Assembly.LoadFrom(fileName)
.GetTypes()
.SingleOrDefault(_ => _.IsSubclassOf(typeof (MyAbstractClass)));
}
但我还在继续
ReflectionTypeLoadException。
无法加载一个或多个请求的类型。有关详细信息,请检索LoaderExceptions属性。
LoaderException
是关于CLR无法加载类型
Proj1.BL.MyAbstractClass
从…起
Proj1.BL, Version=*.*.*.*, Culture=neutral, PublicKeyToken=null
.
但我正在运行的代码
项目1.BL
.
发生了什么?
谢谢你的建议。