ASP.NET分层项目中的动态加载Assembly.load,让我抓狂了整整两天
照本宣科地建了一个抽象工厂的三层项目
其中有 IFactory、IDAL、DALSqlserver、DALAccess,DALOracle
本想最核心的句子也就是IFactory中的:
public static IDAL.UserIDAL CreateUserDAL()
{
string path= "DALSqlserver";
string ClassName = path + ".UserDAL";
return (IDAL.UserIDAL)(Assembly.Load(path).CreateInstance(ClassName)); }
但就是这样一个Assembly.load,一直报错:未能加载文件或程序集
于是查看网上解决方案,列举如下:
有的说 Assembly.Load导入的是程序集/命名空间,CreateInstance才用到里面的类
有的说 WebConfig.xml中配置问题
以前引用别人的 .dll .exe 都一直没有出这样的错,所以很纠结很纠结....
晚上再查资料时,发现有人提起"将编译成功的DALSqlserver/DALOracle放到启动项目bin中(非引用)"尝试后,果然成功。
只建一个项目,项目本身就是运行中的程序集
建多个项目时,启动项目或许才是主程序集吧...
还在思考中..
对了,因为最近看设计模式,所以建一些项目熟悉一下书本知识,希望有人指导呀,跪谢先~