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

    xiaoxiao2021-03-25  67

    前言

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

    配置文件

    (一)定义

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

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

        配置文件是标准的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混合用了

    小结

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

    转载请注明原文地址: https://ju.6miu.com/read-32614.html

    最新回复(0)