当前位置:编程学习 > C#/ASP.NET >>

IConfigurationSectionHandler读取web.config问题

读取代码:
ILogin login = ConfigurationManager.GetSection("Login") as ILogin;
web.config文件中的节点:
<section name="Login" type="AquLed_Class.Login,AquLed_Class" />

注:ILogin继承IConfigurationSectionHandler接口,AquLed_Class.Login实现ILogin接口。
问题:为什么login总是为null,好像无法读取到配置文件中的节点 --------------------编程问答-------------------- ConfigurationManager.GetSection("Login") 出来只是个字符串,你需要根据这个字符串来反射并动态创建对象才能获取到ILogin的对象 --------------------编程问答--------------------
引用 1 楼 gxingmin 的回复:
ConfigurationManager.GetSection("Login") 出来只是个字符串,你需要根据这个字符串来反射并动态创建对象才能获取到ILogin的对象


请问具体代码应该如何操作 --------------------编程问答-------------------- ILogin login=(ILogin)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(ConfigurationManager.GetSection("Login"), false);

试试这样行不行 --------------------编程问答--------------------
引用 3 楼 gxingmin 的回复:
ILogin login=(ILogin)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(ConfigurationManager.GetSection("Login"), false);

试试这样行不行



显示未将对象的引用设置到对象的事例 --------------------编程问答--------------------
ILogin login=(ILogin)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("AquLed_Class.Login",false);

这样应该是可以的

你想办法把"AquLed_Class.Login"用config里的代替掉
  --------------------编程问答--------------------
引用 5 楼 gxingmin 的回复:
ILogin login=(ILogin)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("AquLed_Class.Login",false);

这样应该是可以的

你想办法把"AquLed_Class.Login"用config里的代替掉


Login就是我config里<section name="Login" type="AquLed_Class.Login,AquLed_Class" />的节点名 --------------------编程问答-------------------- 知道啊,你从节点里获取类的 "命名空间.类名",放到CreateInstance里作为第一个参数 --------------------编程问答--------------------
引用 7 楼 gxingmin 的回复:
知道啊,你从节点里获取类的 "命名空间.类名",放到CreateInstance里作为第一个参数


还是不好用啊........,我就是想读取<section name="Login" type="AquLed_Class.Login,AquLed_Class" />这个节点
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,