积极答复者
Winform 反射不了吗?

问题
-
namespace demo.BLL { public class CategoryBLL { private static readonly ICategory dal = demo.DALFactory.DataAccess.CreateCategory();
public DataSet GetCategories()
{
return dal.GetCategories();
}} }
namespace demo.DALFactory { public class DataAccess { private DataAccess() { } public static demo.DAL.ICategory CreateCategory() { return (demo.DAL.ICategory)Assembly.Load("demo.DAL").CreateInstance("demo.DAL.Category"); } } }
namespace demo.DAL { public interface ICategory { DataSet GetCategories(); }
public class CategoryDAL : ICategory {
public DataSet GetCategories() {}
}
}
From1
private CategoryBLL cBll = new CategoryBLL();
执行后这行报错:“demo.BLL.CategoryBLL”的类型初始值设定项引发异常。
这是什么问题?
- 已编辑 Lacuz 2012年10月9日 8:24
答案
全部回复
-
-
-
你写的是
CreateInstance("demo.DAL.Category");
跟踪看看
本人初学C#,还不知道怎么用跟踪- -
是插入跟踪点吗?然后呢?
-
自己找到办法查PublicKeyToken
-
改成了
return (demo.DAL.ICategory)Assembly.Load("DAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d960f1ac06f6b992").CreateInstance("demo.DAL.Category");
原来的错误没了,但是BLL里确出了错误
return dal.GetCategories(); 未将对象引用设置到对象的实例。
不用反射的时候无错误- -
dal不是静态的么?怎么会提示还需要实例?
- 已编辑 Lacuz 2012年10月9日 8:28
-
我是说你类名写错了
.CreateInstance("demo.DAL.Category")
应该是
.CreateInstance("demo.DAL.CategoryDAL")