当前位置: 代码迷 >> 编程 >> 反射中配置文件的有关问题
  详细解决方案

反射中配置文件的有关问题

热度:9546   发布时间:2013-02-26 00:00:00.0
反射中配置文件的问题

这两天是在做重新做机房收费系统 ,利用反射+配置文件 是吸纳数据库访问程序 。

期间遇到了一个小问题,小问题却花了很大的时间才给弄好了,最终的问题确实一个很小的小细节。

下面看具体的一段代码

/去除IFactory ,SqlserverFactory, SqlserverFactory ,AccessFactory三个工厂类,取而代之的是DataAccess类    class DataAccess    {        //反射条件的写法 , 加入反射可以用例字符串来实例化对象 了 。而变量是可以更换的         private static readonly string AssemblyName = "反射";//程序集名称        private static readonly string db = ConfigurationManager.AppSettings["DB"];//数据库访问变量        //实例化 具体类        public static IUser CreateUser()        {          string className = AssemblyName + "." +db  + "User";//命名空间+实例化类名            return (IUser)Assembly.Load(AssemblyName).CreateInstance(className);               }        public static IDepartment CreateDepartment()        {            string className = AssemblyName + "." + db + "Department";            return (IDepartment)Assembly.Load(AssemblyName).CreateInstance(className);        }    }

 

配置文件的代码

<?xml version="1.0" encoding="utf-8" ?><configuration>    <startup>         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />    </startup>		<appSettings>		<add key="DB " value="Sqlserver"/>	</appSettings></configuration>


然后就进行程序调试了 ,期间遇到的一个错误就是 

之后再看 ClassName 的值  如下图



 

少了 db的值 ,哪里去了呢了,再回去看db

 

出现了db的值为空现象,为空就是没有传递过来,返回看配置文件   , 发现key =“DB”中,DB后面多了一个空格

<appSettings>		<add key="DB " value="Sqlserver"/>

 

小问题, 纠结了好久才解决到 。真是细节决定成败呀,一个空格就如此大的麻烦 了,如果不细心,那么后面的问题会更大呀。 所以 一定要心细, 细心才是。

2楼wss7846161582小时前
额,一个机房收费系统可以变成这个样子,好神奇啊!加油!
1楼lidaasky昨天 16:06
开始用vb.net的写写,用的时候再用c#
  相关解决方案