public override IDAL.IRoomService CreateRoomService()
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
} public override IDAL.IRoomTypeService CreateRoomTypeService()
{
return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
}
如果这样写就报:未能加载文件或程序集 “DAL”或它的某一个依赖项。系统找不到指定的文件
但是如果其中任意一个方法不用工厂,直接new个对象,两个都不报错
是怎么回事啊!
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
} public override IDAL.IRoomTypeService CreateRoomTypeService()
{
return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
}
如果这样写就报:未能加载文件或程序集 “DAL”或它的某一个依赖项。系统找不到指定的文件
但是如果其中任意一个方法不用工厂,直接new个对象,两个都不报错
是怎么回事啊!
下面DAL的工程引用
但是如果其中任意一个方法不用工厂,直接new个对象,两个都不报错
是怎么回事啊!
”
我工厂用的反射报错,如果直接NEW个实例就可以,
这样可以,不报错:
public override IDAL.IRoomService CreateRoomService()
{
//return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
return new DAL.MySql.RoomService();
} public override IDAL.IRoomTypeService CreateRoomTypeService()
{
return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
}这样也可以,不报错:
public override IDAL.IRoomService CreateRoomService()
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
return new DAL.MySql.RoomService();
} public override IDAL.IRoomTypeService CreateRoomTypeService()
{
//return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
return new DAL.MySql.RoomTypeService();
}唯独两方法里都用反射取得对象时就报错了;bin路劲下面有dll文件的,我导了引用的
public override IDAL.IRoomService CreateRoomService()
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
//return new DAL.MySql.RoomService();
} public override IDAL.IRoomTypeService CreateRoomTypeService()
{
//return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
return new DAL.MySql.RoomTypeService();
} 唯独两方法里都用反射取得对象时就报错了; bin路劲下面有dll文件的,我导了引用的
Assembly.Load(path) 其中这个path是加载你项目web下bin目录的程序集,也就是说你要反射的程序集在你的web的bin下一定要有,看看你引用没有呢????
时间没有白费,研究了几个小时
一定要把你的Dal.dll或AccessDal.dll放到UI\bin\Debug里,UI是我的界面