C#配置文件解析工具的實現

相對於java開發者來說,VS的開發者不知幸福多少倍。但是,幸福的另一方面是,我們很少能夠了解底層的技術,更多的是跟隨者微軟的技術走。開源的框架,少之甚少。最近,我研究了.Net Framework中的配置文件管理部分技術,結合實際的應用,重寫了相關的類,實現SQL語句、消息的XML配置管理。

配置管理單獨工程代碼及應用程序中的使用方法代碼的下載地址是:http://download.csdn.net/download/attagain/4690885

一、配置管理工程的設計

重寫後的主要配置類的泛型關係,如下圖所示:



爲了能夠使用的方便性、結合SQL、MSG在獨立系統中的特殊性,分別建立了單件類。單件類及SQL、MSG的配置管理類之間的組合關係,如下圖所示:


二、具體應用程序的使用方法

1、將配置管理工程編譯的程序集【com.sis.cbb.dll】,引入應用程序工程。

2、應用程序工程中,新建文件夾【Config】,同時創建SQL、MSG的配置文件SqlConfiguration.config和MsgConfiguration.config。

a、SQL配置文件的格式

<?xml version="1.0" encoding="utf-8" ?>

<sqlConfiguration xmlns="http://www.AttaGain.com/SqlConfiguration.xsd">
    <sqls>
        <!--テーストSQL S-->
        <!--検索のテストSQL-->
        <sql name="test.SelectSQL">
            <![CDATA[
            select distinct t.vehicle_machine_version as "vehicleMachineVersion"
              from bundle_version_info t
             order by t.vehicle_machine_version desc
            ]]>
        </sql>


        <!--インサートのテストSQL-->
        <sql name="test.InsertSQL">
            <![CDATA[
            insert into update_info
              (workstation_ip,
               vehicle_machine_version,
               file_name,
               update_date,
               forward_div)
            values
              (:workstationIp,
               :vehicleMachineVersion,
               :fileName,
               to_date(:updateDate, 'YYYY/MM/DD'),
               :forwardDiv)
            ]]>
        </sql>

        <!--アップデートのテストSQL-->
        <sql name="test.UpdateSQL">
            <![CDATA[
            update upload_file_info t
               set t.upload_status = :uploadStatus
             where t.workstation_ip = :workstationIp
               and t.upload_date = to_date(:uploadDate, 'YYYY/MM/DD')
               and t.file_number = :fileNumber
            ]]>
        </sql>


        <!--削除のテストSQL-->
        <sql name="test.DeleteSQL">
            <![CDATA[
            delete from update_info
            ]]>
        </sql>
        <!--テーストSQL E-->
    </sqls>
</sqlConfiguration>

b、MSG配置文件格式

<?xml version="1.0" encoding="utf-8" ?>

<msgConfiguration xmlns="http://www.AttaGain.com/MsgConfiguration.xsd">
    <msgs>
        <!--テストメッセージ定義 S-->
        <!--システムの異常エラー-->
        <msg name="SYS_COM_SYSERRER" code="SYS_000001" level="3" type="debug,trace,message">
            <![CDATA[
システムは、異常なエラーが発生します。({0})
            ]]>
        </msg>
        <!--テストメッセージ定義 E-->
    </msgs>
</msgConfiguration>

c、Web.config或App.config配置文件的標籤<configSections>和</configSections>之間,添加如下配置信息:

<!-- sqlConfiguration要素と解析クラス -->

<section name="sqlConfiguration" type="com.sis.cbb.Configuration.SqlConfiguration.SqlConfigurationSection,com.sis.cbb"/>
<!-- msgConfiguration要素と解析クラス -->
<section name="msgConfiguration" type="com.sis.cbb.Configuration.MsgConfiguration.MsgConfigurationSection,com.sis.cbb"/>
<!-- 利用するビジネス関係設定ファイルのリスト -->

<sqlConfiguration configSource="Config\SqlConfiguration.config"/>
<!-- 利用するビジネス関係設定ファイルのリスト -->
<msgConfiguration configSource="Config\MsgConfiguration.config"/>

d、在應用程序中的使用方法

// 根據Message名,獲取消息對象

            com.sis.cbb.Entry.MsgManage.Instance().GetMsgByName("SYS_COM_SYSERRER");

// 根據Message ID,獲取消息對象

             com.sis.cbb.Entry.MsgManage.Instance().GetMsgByCode("SYS_000001");

// 根據SQL ID,獲取SQL語句內容

            com.sis.cbb.Entry.SqlManage.Instance().GetSql("test.SelectSQL");

本文中,描述了重寫配置管理類的邏輯關係,詳細講述如何使用該工程。希望能夠大家帶來幫助,好運哦。

配置管理單獨工程代碼及應用程序中的使用方法代碼的下載地址是:http://download.csdn.net/download/attagain/4690885

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章