使用反射和范型來動態讀寫應用程式配置檔案

2021-04-26 16:51:02 字數 1381 閱讀 3106

在我們開發一些應用程式的時候,有時,會將一些應用程式配置資訊儲存在 **.cfg檔案中,例如資料庫連線配置等。

./sqlexpress

master

sa111111

這樣在執行應用程式時, 就可以直接從配置檔案中讀取資料庫連線資訊.

一般的做法是,根據需要配置的資訊,乙個乙個寫入xml檔案或者乙個乙個從xml檔案中讀取。 這個本沒有什麼問題,但是如果我們應用程式需要配置的資訊比較多,維護起來就不是很方便。

所以,我想是不是可以使用反射和范型來動態讀寫應用程式配置檔案?

首先,我們建立乙個引數實體類(乙個屬性對應乙個配置節點)

///

/// 引數定義實體類

///

public class parameter

set

}private string dbname="";

public string dbname

set

}private string dbusername="";

public string dbusername

set

}private string dbpasseord="";

public string dbpasseord

set

}接著,我們要建立乙個引數解析類,來動態讀寫xml配置檔案

///

/// 1 讀取引數配置檔案,得到parameter物件

/// 2 將parametere物件資料寫入到xml檔案

///

public class parameteranalysis

}return o;

}///

/// 載入xml檔案

///

/// xml檔案路徑

///

private  xmldocument loadxmldoc(string filepath)

xmldocument xmldoc = new xmldocument();

xmldoc.load(filepath);

return xmldoc;}}

在需要的地方可以使用如下**來讀取引數資料

parameter  parameter = new parameteranalysis().getobjectfromxml(filepath);

使用如下的**來更新引數(先例項化parameter物件)

new parameteranalysis().updatexml(parameter, filepath);

當應用程式的需求發生變化, 需要增加或刪除配置資訊的時候,只需要維護parameter引數類就可以了(新增或刪除屬性),維護起來非常方便。

一點拙見, 希望能給新手一點參考。

generics 范型 的使用

什麼是范型?u system.collections.generic命名空間包含了范型集合需要的類和介面 u 我們在寫程式的時候 經常需要這種東西 可變長度的 array,比如說乙個 string 而事實上定義了乙個 string 並初始化後那麼它的長度就固定了 array 根本做不到 如果非要實現...

范型萬用字元和限定

private static void printlist collection extends person list 當使用范型類或者介面時,傳遞的具體的型別不確定,可以通過萬用字元 表示.如果想要對被使用的集合中元素型別進行限定,使用范型的限定 extends person person是要被...

泛型和反射

泛型允許程式設計師在 中將變數或引數的型別,先用 型別佔位符 來代替,等到允許的時候再根據傳入的 類 來代替 泛型是指帶型別引數的類,而不是引數本身。類 方法 結構 介面都可定義為泛型 可以定義多個引數 public class person 例項化乙個引用引數型別的泛型,它的記憶體分配的大小是一樣...