首页 新闻 会员 周边

工厂模式,返回实例为Null

0
悬赏园豆:5 [已解决问题] 解决于 2012-05-03 09:49

 private static readonly string AssemblyPath=ConfigurationManager.AppSettings["DAL"];
 public static ERPSys.IDAL.IAdmin CreateAdmin() 

 {            

          string ClassNamespace = AssemblyPath ".Admin";

           IDAL.IAdmin admin=ERPSys.IDAL.IAdmin)Assembly.Load(AssemblyPath).CreateInstance(ClassNamespace));            return admin; 

}

问题补充: 返回的admin为null,请问是怎么回事?
一线码农的主页 一线码农 | 菜鸟二级 | 园豆:213
提问于:2011-03-07 08:58
< >
分享
最佳答案
0

反射不成功

Assembly.Load(AssemblyPath).CreateInstance

检查assemblypath是否存在,这个asebmlby是否部署,然后查看ClassNamespace是否在该dll中包含

收获园豆:5
xiao_p | 小虾三级 |园豆:608 | 2011-03-07 09:26
AssemblyPath存在,不为空,Bin文件夹下没有那个dll,但是没有提示“找不到程序集”
一线码农 | 园豆:213 (菜鸟二级) | 2011-03-07 10:39
还是分两步弄吧,先查看load的返回值是什么
然后再createinstance看看能不能成功
xiao_p | 园豆:608 (小虾三级) | 2011-03-07 13:51
如果load可以返回正确的assembly,那就是第二步的问题了。
如果不能返回,那明显就是load assembly的问题了,就可以查查msdn load方法的参数,看看参数正确不正确,dll是否正确部署
xiao_p | 园豆:608 (小虾三级) | 2011-03-07 13:52

@xiao_p: 一年后突然发现还有一个未结贴,小子,结分。

一线码农 | 园豆:213 (菜鸟二级) | 2012-05-03 09:48
其他回答(4)
0

用.net代码生成器,生成一个工厂模式的,对比下就知道了!

机锋科技 | 园豆:205 (菜鸟二级) | 2011-03-07 09:55
0

你运行一下看看那个path是什么。

顾晓北 | 园豆:10844 (专家六级) | 2011-03-08 17:55
0

看dll 有没有?

clound | 园豆:481 (菜鸟二级) | 2011-03-10 18:59
0

终于找到你了

钟季 | 园豆:202 (菜鸟二级) | 2013-05-22 10:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册