在三层架构中工厂类实现时遇到的一个问题
我写了一个方法获取 类型
C# code
private static System.Type GetImplType(string name)
{
string configName = System.Configuration.ConfigurationManager.AppSettings["DataAccess"];// 获取程序集名
string className = string.Format("{0}.{1}", configName, name); //拼接程序集+类名 使之完整
System.Reflection.Assembly.Load(configName); //加载程序集
System.Type type = System.Type.GetType(className); //通过类名 得到 类型
return type;
}
到这里我通过调试已经可以获取 className的值为 PetShop.SQLServerDAL.Category
为什么 调用这句后 System.Type type = System.Type.GetType(className);
type 的值 为null?
希望大家帮忙看看
------解决方案--------------------不可能吧。。
string className = string.Format("{0}.{1}", configName, name); //拼接程序集+类名 使之完整
这个明显为 string 撒
------解决方案--------------------
Assembly asm = Assembly.Load(configName); //加载程序集
System.Type type = asm.GetType(className); //通过类名 得到 类型
你把倒数第二句,第三句改成这样试试呢
------解决方案--------------------1.Load(string)中的参数指的是:文件名称
2.GetType(string)中的参数指的是:命名空间.类名称
3.楼主写法错误,参照2楼