机房收费系统的重构中,看到许多资料关于反射+配置文件,自己也不知道是啥,怎么用,为什么用,但是很多前辈们都走过了,有了这个东西,自己当然也要尝试一下,然后经过查询以及讨论之后,对各方的知识进行汇总和整理加上自己的一点理解,留下来这篇博文。
1.是什么,能干什么?
配置文件是标准的 XML 文件,XML 标记和属性区分大小写。随安装程序一起被安装到计算机上的文件,里面存放着安装好的应用程序运行时所需要的参数,它可以按需要更改参数,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。配置文件的根节点是configuration。
2.好处?
定义往往是比较枯燥的东西,任何一个定义看起来都比较费劲,当时当我们从其他的方面理解了之后,在回头看定义就会感觉人家说的很好,是这么回事;我们看一下他的好处,应该对理解配置文件会有帮助。机房收费系统我们需要连接数据库,如果我们把数据库连接字符添加到配置文件中,指定一个变量表示这个字符,那么在程序中使用的时候,我们使用的就是这个变量名,当改变配置文件字符的时候,系统中所有的内容也就改变了。就像常量一样,const
double PI =3.14.程序中所有的PI用的都是3.14这个值,如果要修改程序中所有PI的值,只需要在定义出修改就行。增加了系统的健壮性。
在机房中同样通过配置文件,修改系统对应的数据库。把配置文件中SQL Server的数据库字符改为Access数据库,那么系统中,分别编写了操作两种数据库的代码。那么程序就可以在两个数据间很方便的更换使用。
3.应该添加到哪里?
程序中7层每一层都有配置文件,那么应该在哪里里面添加呢?刚开始看到前辈们都填到了UI层,为什么呢?自己的理解是,因为UI层是整个程序的启动项,最先执行,然后它的配置文件会被编译,后面系统中用到配置文件内容的时候,才能被使用。有人是这么说的:配置文件需要添加到主程序集中(也就是最初新建工程的时候生成的窗体应用程序或者其他应用程序)。编译后会和应用程序(.exe文件)生成在同一目录下。如果编译后发现程序主目录中没有XXX.exe.config文件,那么你很有可能没有添加对地方。
4.代码的格式?注释的格式?
那么这里打开U层的配置文件app.config,在里面添加需要的内容。如果UI没有配置文件的话,那么在U层上右击->添加->左侧常用项中选择常规->然后点击应用程序配置文件->文件的后缀是.config格式;
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <!--注释:添加配置文件,可以用appSettings 和 connectionStrings两种--><pre name="code" class="html" style="font-size: 16px; line-height: 24px;"> <!--注释:更改value的内容,可以选择与系统操作的数据库类型-->
<appSettings><add key ="DB " value ="SqlServer"/></appSettings><!--注释:数据库连接字符添加到配置文件中,使用的时候用ConnString就行,不用再在程序中赋值--><connectionStrings><add name ="connString" connectionString ="server=.;database=jifang_sys;user id=sa;password=123456"/></connectionStrings></configuration>
5.使用
1.添加引用
需要使用配置文件的层,要添加引用;该层上右击->添加引用;
2.使用配置文件
在程序中数据库连接字符使用;
例如:
Dim connString As String = ConfigurationManager.AppSettings("connString")
总结:
配置文件的好处还是要在系统的不断实现中继续去感受,目前能够体会到的就是在数据库连接字符上和数据库的更换上,实际上用了配置文件,已经单单在这两方面给我们省去很大的工作量。其它情况,具体遇到具体解决。