再來是 如何 宣告 與使用
首先 我們需要宣告三個物件
Public EnumSettingData As MyConfig.Sections '記憶取得的環境設定
Public ConfigFile As New System.Configuration.ExeConfigurationFileMap() '設定檔的路徑與相關
Public Config As System.Configuration.Configuration '取得或設定 環境設定用
再來是在 程式啟動時 呼叫相關的 Function
MyConfig.Sections.SectionName = "SPC_RE02-01"
Dim ExeFilePath As String = String.Format("{0}\Resources\{1}.Config", My.Application.Info.DirectoryPath, "SPC_RE02-01") '設定檔路徑
ConfigFile.ExeConfigFilename = ExeFilePath
Config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(ConfigFile, System.Configuration.ConfigurationUserLevel.None) <---載入設定
Try
If Config.Sections(MyConfig.Sections.SectionName) Is Nothing Then
EnumSettingData = New MyConfig.Sections
Config.Sections.Add(MyConfig.Sections.SectionName, EnumSettingData)
Else
EnumSettingData = CType(Config.Sections(MyConfig.Sections.SectionName), MyConfig.Sections) '將設定檔 輸入到 可分析的 物件
End If
Catch ex As Exception
MsgBox("Err 1001: Enum initalization Error !! ")
End Try
If Not IO.File.Exists(ExeFilePath) Then
If MsgBox("Are you want create new file ? " + vbCrLf + "Be care . It will wipe old and creat new one !!!", MsgBoxStyle.YesNo) Then
EnumSettingData.SectionInformation.ForceSave = True
EnumSettingData.Path.LogPath.Text = "D:\Log"
Config.Save(System.Configuration.ConfigurationSaveMode.Full) '如果設定檔不存在 寫一個新的
End If
End If
上面簡單說 就是 依照路徑 與 Section Name 將設定檔載入........
如果沒有 就見一個新的 ......(這是一個好偷懶方式......應該沒多少人想自己親自keyin XML 的設定檔.....)
最後 如果 設定檔 在程式中 有修改要寫入
EnumSettingData.SectionInformation.ForceSave = True
Config.Save(System.Configuration.ConfigurationSaveMode.Full)
依樣就會將 設定檔給複寫
最後來做個總結 與 範例程式操作的介紹
說了一堆 恩 希望各位看官看的了解....
也說了一堆好處,但壞處呢 ?
其實 這也並不是非常完美 目前用到現在 有幾個比較麻煩的地方
1. 每個資料型態都要先定義, 恩 物件化的後果.....有點麻煩 但常用的定義過後以後就可以再用
2.資料量必須符合。 設定檔中的資料 必須與 Class中的定義數量依樣,不然就導不進來。如果有對 Class有作任何的增修
相對應的 config 就必須修改,不然就全部進不來...恩也是 物件化的後果
3.程式碼稍長..........恩 沒 IINI的 API 那樣直覺,但效能較佳 算 抵銷
整體來說 如果只有少數的設定需要寫入文字檔,並不太需要 用這個 類別 來實作 (程式碼都比設定檔多....)
但相對的,當有大量 重複設定的 這個 是很實用的一種方式
附上的程式碼 主要就是 config 檔的 Class 與 呼叫
在 Chart 圖上 右鍵 選 setting 可以進入 編輯模式
改完後 選 ok 回到主表單 選 Save 就會把 設定檔存入
這邊就可以看到 當有複雜的設定檔要存檔時 這個 類別 就發揮很大的功效
https://docs.google.com/open?id=0B7UGRMCI7PjpVHJRSzNEbndsVnM
有興趣的朋友 在 Code Project 有更多的介紹
http://www.codeproject.com/Articles/5304/Read-Write-XML-files-Config-files-INI-files-or-the