【机房重构】 抽象工厂+反射+配置文件(上)

前言

    被抽象工厂在重构中的运用困扰好久了,现在终于理清了一些头绪。下面我就分享一下这一阶段我所遇到的一些问题以及解决方法。


配置文件

(一)定义

    百度百科说“配置文件是在用户登录电脑时,或是用户在使用软件是,软件系统为用户所要加载所需环境的设置和文件的集合。”

    通俗的讲,配置文件就是程序运行时需要用到的一些设置以及参数,它和程序一起安装到计算机上。通过配置文件,开发人员可以按需要对其做修改,而不必改变程序代码,就可以达到某种目的。

    配置文件是标准的XML文件(Extensible Markup Language——可扩展标记语言),用来存储和传输数据。

(二)为什么用?

    通过接下来的代码不难发现,配置文件的使用,可以让我们不需更改程序中具体的代码即可更换数据库。

(三)添加到哪?如何添加?

    以机房重构为例,UI层是启动项,所以配置文件添加到这一层,当程序运行时,配置文件就会被编译,配合接下来的使用。

    添加方法:

1:直接修改UI层下文件App.config

2:ctrl+shift+a(右击程序集名称——添加——新建项)——常规——应用程序配置文件

        

(四)代码格式

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<!--配置文件开始-->
	<startup>
		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
	</startup>
	<!--添加新的节点,用来修改数据库的连接-->
	<appSettings>
		 <!--key值要与sqlhelper里返回变量一致,value值即连接数据库的语言,依次为服务器名、数据库名、用户名、密码-->
		 <add key="sqlConnectStr"  value="Server=.;Database=charge;User ID=sa;Password=123456"/>
		<!--工厂用到-->
         <add key="DB"  value="Sqlserver"/>	
	</appSettings>
	<!--其他节点(connectionStrings)-->
	<!--<connectionStrings>
		<add name ="sqlConnectStr" connectionString ="Data Source=192.168.21.1;Initial Catalog=charge;User ID=sa;Password=123456"
		 providerName="System.Data.SqlClient"/>
	</connectionStrings>-->
</configuration>

(五)appsettings VS connectionstrings

:配置文件中的节点,用于连接数据库
异:
1.连接字符串
  appsettings:add key=""   value="" 
  connectionstrings:add name="" connectionString="" providerName=""
2.使用方法
  appsettings:  System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]
  connectionstrings:System.Configuration.ConfigurationManager.ConnectionString["ConnectionString"].ConnectionString

(六)如何使用

1.添加引用(用到配置文件的项目中添加)

     右击程序集——添加引用——程序集——框架——System.Configuration

                   

2.添加代码

 Dim strDB As String = System.Configuration.ConfigurationSettings.AppSettings("DB")

(七)相关问题

                                                                                              

问题原因:connectionstrings和appsettings混合用了


小结

    本篇文章作为引子,为接下来要提到的抽象工厂+反射内容做一些铺垫。

猜你喜欢

转载自blog.csdn.net/ljl55555/article/details/61614867