工厂这样创建:
object objType = Assembly.Load("BillingSer107.DataAccess").CreateInstance("BillingSer107.DataAccess.TaoCanTable");//反射创建TaoCanTable.csnamespace BillingSer107.DataAccess
{
/// <summary>
/// 数据访问类TaoCanTable。
/// </summary>
public class TaoCanTable:ITaoCanTable
{
public TaoCanTable()
{}
#region  成员方法
//......
#endregion  成员方法
}
}
错误:插入断点调试,objType的值总是为"没有定义".不知道哪里错了,昨天还正常,现在就不行了.大家帮小弟一下.谢谢了!

解决方案 »

  1.   

    BillingSer107.DataAccess.TaoCanTable所在的程序集文件名是"BillingSer107.DataAccess"吗?
      

  2.   

    1.每一层是否是独立的程序集(也就是独立的项目)
      因为Assembly.Load(path)这里的path必须是一个程序集的名称,而不是类命名空间的名称。2.请检查数据层是否实现了接口。
      SQLServerDAL下面的具体类是否实现了接口的定义,如:
      
    3.请检查程序集名称和命名空间不一致。
      因为Assembly.Load(path)这里的path必须是一个程序集的名称
      CreateInstance(CacheKey)这里的CacheKey其实是需要反射的类型全名(包括命名空间的全路径)。
     所以,尽量让程序集名称和命名空间一致,这样的得到的类型全名=程序集名称+类名。
     否则,你需要把CacheKey换成实际的类型全名。
           
    4.请检查BLL层是否添加了SQLServerDAL的项目引用。