程式 往往需要需要一些環境設定檔來記錄一些 可隨著環境 或 某些需要修改的情況的參數
在過去 最常用的 是 .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>
第一層 其實就是程式內定一定要建立的,也就是取的名子,對於程式碼本身就只是一個辨識的功能
第二層開始,就是自己建立,就看大家要怎麼設定
上面的第三層 與地 四層是一樣的,其實都是針對 數值的 存放地方 後面會有在說明