反射中配置文件的问题

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

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

下面看具体的一段代码

/去除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>


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

反射中配置文件的问题_第1张图片

之后再看 ClassName 的值  如下图



 

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

 

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

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

 

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

你可能感兴趣的:(反射中配置文件的问题)