輕鬆完成自定義節點配置及讀取操作(通用元件)

2022-03-05 08:06:31 字數 2907 閱讀 1249

一、原來自定配置檔案的編寫方式:

1、定義型別比較繁瑣

internal class aopconfigurationsection : configurationsection

} }

2、linq to xml查詢

xelement xelement = xelement.parse(xml);

var name = from e in xelement.elements("b")

let s = e.element("e")

select s.attribute("name").value;

二、通用配置元件介紹

引用:definitionconfig.dll

物件:displayconfigname特性(對應節點名稱)

readsection類(初始化節點)

configsectionshelper類(配置解析類)

sections類(配置集合類)

特點:根據自定義型別讀取配置檔案

注意:定義子節點屬性型別為sections泛型集合類

方法:getconfigsection();//讀取唯一節點型別

getconfigsectionchild();//讀取包含子節點型別

1.自定義型別

public class connconfig

public string str//如果沒有宣告特性,那麼配置檔案名稱為屬性名稱str

}

2.單節點(不含子節點)

//這裡section 中type屬性為definitionconfig.configsectionshelper,definitionconfig或db

connstring

上面我們只配置了乙個connstr節點。沒有任何子節點。注:此節點只能有乙個,所以不能多個connstr。

我們把這個配置讀取為connconfig型別。

readsection rs = new readsection("connstr");//例項化readsection,引數為節點名稱

connconfig conn= rs.getconfigsection();//通過getconfigsection讀取配置

console.writeline(conn.name);//驗證是否讀取到

3、多節點(含子節點)

connstring

sqlite

connstring

readsection rs = new readsection("connstrs");//讀取connstrs節點

var con = rs.getconfigsectionchild();//getconfigsectionchild讀取子節點配置,注:只要有子節點配置都需要用這個來讀取

foreach (var item in con)

4、屬性為自定義型別(含多個子節點)

public class connconfig

public connstring str //定義為型別

}public class connstring

public string type

}oracle

oracle10

readsection rs = new readsection("connstrs");

var con = rs.getconfigsectionchild();

console.writeline(con[0].str.name);//oracledb

5、屬性為自定義集合型別(子節點集合)

public class connconfig

public connstring str

public sectionsaa //定義集合

}public class connstring

public string type

}public class aa

}oracle

oracle10

2

readsection rs = new readsection("connstrs");

var con = rs.getconfigsectionchild();

foreach (var item in con[0].aa)

6、屬性為自定義多個集合型別(多子節點集合)

public class connconfig

public connstring str

public sectionsaa

} public class connstring

public string type

} public class aa

public sectionsbb

} public class bb

}oracle

oracle10

2readsection rs = new readsection("connstrs");

var con = rs.getconfigsectionchild();

foreach (var item in con[0].aa)

7、配置外部config

readsection rs = new readsection("mysection");//讀取節點

var list = rs.getconfigsectionchild();

元件demo:readconfigdemo

WebConfig自定義節點並讀取

最近是遇到了乙個需求,需要自定義webconfig節點,然後進行讀取,網上有很多部落格,寫的非常好,但是筆者在實現的過程中還是遇到了點問題,現在寫一篇文章來總結下。首先推薦大家看筆者就是照著這篇blog來完成自己的demo。先把demo貼出來 大家一定要注意configsections一定要寫在co...

自定義配置節點

我希望在web.config中,配置 資訊,管理員資訊,和使用者資訊 當然這個配置有點不切實際了,這裡只是為了演示 所以,我希望按下面的格式做配置。這個sitesetting配置節點是乙個稍微複雜一點的配置,自己包含有attributes,同時包含子節點siteadmin,siteusers,而si...

zTree(十)自定義節點html格式名稱

需求 因為專案組織上有終端數量,所以產品希望在節點上能夠顯示終端數量並顯示在節點的右側,一開始我查文件並沒有這種東西,後來想到用html片段加上去,結果發現節點上顯示了html字串,也就是說並不識別html片段並正確顯示我需要的東西。orglist i name orglist i orgname ...