问题描述
做三层架构时引用了反射机制实现一个登录的功能,但是出了问题,望高手指教下。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Configuration;usingSystem.Reflection;namespaceLogindemo.DALFactory{//此类用于实现抽象工厂模式去创建从配置文件指定的数据访问层的实例publicsealedclassDataAccess{privatestaticreadonlystringpath=System.Configuration.ConfigurationManager.AppSettings["WebDAL"];//实现CreateLogin方法,用于创建Login类实例publicstaticLogindemo.IDAL.ILoginCreateLogin(){stringclassname=path+".Login";return(Logindemo.IDAL.ILogin)Assembly.Load(path).CreateInstance(classname);}}}下面这个是登录的usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingLogindemo.Model;usingLogindemo.IDAL;usingSystem.Web;usingLogindemo.DALFactory;namespaceLogindemo.BLL{publicclassLogin{//利用反射生成实例privatestaticreadonlyILogindenglu=Logindemo.DALFactory.DataAccess.CreateLogin();//登陆publicintdenglula(Logininfolog){returndenglu.Logining(log);}}}运行时returndenglu.Logining(log);报错望高手指教,小弟不胜感激啊!!
解决方案
解决方案二:
我在51ASPX上下了一个源码跟你的简直一模一样,你就是那个上传的人吧。
解决方案三:
看看denglu是不是null
解决方案四:
学习。。
解决方案五:
用的是petshop6.0的代码,例子里应该很清楚啊
解决方案六:
问问题都不会,真不知道该说什么了。运行时returndenglu.Logining(log);报错当别人是神仙阿,能知道你的错是什么。
解决方案七:
楼上说的对,你总要把错误信息发出来呀,还有,你用的是03还是05
解决方案八:
是不是没有真正创建成功实例activator.createInstanct(类型,True)第二个参数是必须的。这样才能创建成功,即使你类中的构造器是private,只要不带参数即可.http://blog.csdn.net/go2newlife/archive/2007/11/27/1904687.aspx