程式 往往需要需要一些環境設定檔來記錄一些 可隨著環境 或 某些需要修改的情況的參數

在過去  最常用的 是 .ini 的檔案。而這個 API 也早已開發得很完整

隨著編譯軟體的進步,新的 XML 格式 INI 設定檔 也隨之產生

 

ini 的使用其實也很方便,但隨著物件化的編譯方式的產生, ini 的模式 多少有些不夠用

XML 的格式可以符合這樣的需求,但 依但要大量的使用 又有些不方便

其實 微軟 早就 建立的一個 專用的 Class 來處理 ini 的問題,也就是在某些軟體可以看到的 .config 檔

它的格式也同 XML ,但已有一個很完整的物件再做處理

 

這個 Class 就是   System.Configuration

最大的好處就是 以物件化處理設定檔,當相同重複要設定參數有很好的處力能力

而且可以依照設計者的需求 存入 專屬格式  ( int double 是基礎,要 Color  甚至 自定格式 更是難不倒  這是我最喜歡的地方)

 

一般來說  我會分成  3~4層  ( 要10層也可以,如果有需要的話........當然要 2層 也可以 但就失去 XML 格式的意義)

下面是簡化後的 設定檔部分  (真實的  附在code 裡  ...太長了...)

 <configSections>
        <section name="SPC_RE02-01" type="ISpcChart.MyConfig.Sections, ISpcChart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowLocation="true" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" overrideModeDefault="Allow" restartOnExternalChanges="true" requirePermission="true" />
    </configSections>
  <SPC_RE02-01>
        <Path>
            <SpcData Value="" />
            <Log Value="D:\HS\Log" />
            <SPClist Value="" />
        </Path>
        <EnumSetting>
            <DisablePw Switch="false" />
            <KeepTime Value="0" />
        </EnumSetting>
        <ChartArea1>
            <Times Value="0" />     
            <Series1>          
                <LineStyle Value="0" />             
            </Series1>
            <Series2>            
                <LineStyle Value="0" />    
            </Series2>
            <Series3>         
                <LineStyle Value="0" />           
            </Series3>
            <Series4>            
                <LineStyle Value="0" />           
            </Series4>
        </ChartArea1>
        <ChartArea2>
            <Times Value="0" />
            <Series1>            
                <LineStyle Value="0" />           
            </Series1>
            <Series2>           
                <LineStyle Value="0" />            
            </Series2>
            <Series3>
                 <LineStyle Value="0" />
            </Series3>
            <Series4>          
                <LineStyle Value="0" />          
            </Series4>
        </ChartArea2>
    </SPC_RE02-01>

 

 

最外圍的     <SPC_RE02-01> ... </SPC_RE02-01>

這個部份就是 Section name

<configSections>
        <section name="SPC_RE02-01" type="ISpcChart.MyConfig.Sections, ............................... />
 </configSections>

必須與開頭的 設定區塊裡的  section name 相同

再來 type 這個參數   type="ISpcChart.MyConfig.Sections

代表所屬的專案(其實可以放在同一個專案  但 個人有使用的設定  需要另開一個專案)

 

為了說明方便  再簡化一次

這是一個 4層的設定檔

  <SPC_RE02-01>                                               <----這是第一層
        <Path>                                                       <----這是第二層
            <SpcData Value="" />                            <----這是第三層
        </Path>
        <EnumSetting>
        </EnumSetting>
        <ChartArea1>
            <Times Value="0" />     
            <Series1>          
                <LineStyle Value="0" />                     <-----這是第四層
            </Series1>
        </ChartArea1>
        <ChartArea2>
            <Times Value="0" />
            <Series1>            
                <LineStyle Value="0" />           
            </Series1>
        </ChartArea2>
</SPC_RE02-01>

 

第一層  其實就是程式內定一定要建立的,也就是取的名子,對於程式碼本身就只是一個辨識的功能

第二層開始,就是自己建立,就看大家要怎麼設定

上面的第三層 與地 四層是一樣的,其實都是針對 數值的 存放地方   後面會有在說明

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Rh 的頭像
    Rh

    程式狂想曲

    Rh 發表在 痞客邦 留言(0) 人氣()