在我們開發一些應用程式的時候,有時,會將一些應用程式配置資訊儲存在 **.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 例項化乙個引用引數型別的泛型,它的記憶體分配的大小是一樣...