基於kbmMW Configuration Framework 實現配置文件對象化


實做一個應用,一般情況下,我們總要為之做一個配置文件,用來設置象數據庫聯接參數等信息,然后用TIniFile或者注冊表對象來讀寫。為此,kbmMW為我們帶來更好用的方式,讓代碼維護起來更優雅。

如果你對kbmMW Configuration Framework一無所知,可以先看看譯的博文,大體先了解一下工作原理與基本使用方法:Configuration REST easy with kbmMW #7以及窯洞洞主xalion寫的使用kbmMWConfiguration 讓 kbmmw smartservice 更聰明

如果功課做完,接下來,就可以看看我在項目中實現自己的配置對象:

第一步,定義自己的配置對象類:

  TConfigurableObject = class(TkbmMWConfigurableObject)
  private
    [kbmMW_Config('Host',mwcdReadWrite)]
    FHost: string;

    [kbmMW_Config('Host',mwcdReadWrite)]
    FPort: string;
  public

    property Host:string read FHost write FHost;
    property Port:string read FPort write FPort;
  end;

為了易讀,上面代碼做了簡化,Host,指服務器的地址,Port指服務器的端口。

第二步,定義配置對象的存儲:

在同一單元的initialization段,用如下代碼實現。這里,我用的xml格式在執行文件同目錄下保存xml文件,命名為config.xml。注意:這一步是可選擇的,如果不處理,config對象會自動在執行文件當前目錄生成xxxx_config.xml文件。

initialization

Config.Storage:=TkbmMWXMLConfigurationStorage.Create(GetApplicationPath('config.xml'));//注意:這一步是可選擇的,如果不處理,config對象會自動在執行文件當前目錄生成xxxx_config.xml文件。

第三步,在同一單元的initialization段,注冊TConfigurableObject,讓config對象能夠通過xml文件讀寫這個他。

initialization

Config.Storage:=TkbmMWXMLConfigurationStorage.Create(GetApplicationPath('config.xml'));

kbmMWRegisterKnownClass(TConfigurableObject);

第四步,使用自定義的配置對象TConfigurableObject

在MainDatamodule單元中,聲明一個類型為TConfigurableObject的對象,然后通過該對象的屬性,就可以讀取與設置配置文件了。

最后,還要注意其他的問題:

默認情況下,kbmMW Configuration Framework自動備份五次配置文件,如果不需要,按下面代碼:

 

initialization

Config.Storage:=TkbmMWXMLConfigurationStorage.Create(GetApplicationPath('config.xml'));
Config.Storage.BackupMaxCount:=-1;//不生成備份文件.

 

全局的Config對象與配置對象的關系,這個我們也要知道,默認情況下,配置對象的Configuration屬性,即指向Config,象上面的代碼,就是這樣的關系。知道了這個關系,我們就可以實現的配置對象的讀寫,有些時候,當我們修改了配置文件的屬性,想立即寫入配置文件,用下面的代碼:

  ConfigObject.Configuration.Storage.Save;

這看起來很啰嗦,作者為我們封裝了一個方法:

ConfigObject.WriteConfig;//寫配置文件內容。

同樣,還有一個讀方法:

ConfigObject.ReadConfig;//讀配置文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM