自定義配置節點

2021-05-25 13:43:54 字數 1933 閱讀 7182

我希望在web.config中,配置**資訊,管理員資訊,和使用者資訊(當然這個配置有點不切實際了,這裡只是為了演示),所以,我希望按下面的格式做配置。

這個sitesetting配置節點是乙個稍微複雜一點的配置,自己包含有attributes,同時包含子節點siteadmin, siteusers, 而siteusers又包含多個siteuser子節點。

接下來我要定義幾個類,分別代表各個不同的節點。有一定的規則:

代表根節點,也就是sitesetting節點的類,繼承自configurationsection類

代表單一子節點的siteadmin, siteuser類,繼承自configurationelement類

包含多個同名子節點的siteusers類,繼承自configurationelementcollection類

2. siteadmin類

public class siteadmin : configurationelement

set

}[configurationproperty("adminname")]

public string adminname

set

}} 注意configurationpropertyattribute,和this關鍵字,很明顯在基類中定義了索引器。本文並不想對這些做過多**,直接以**展示。

3. siteuser類

public class siteuser : configurationelement

set

}[configurationproperty("username")]

public string username

set }}

4. siteusers類

public class siteusers : configurationelementcollection

protected override object getelementkey(configurationelement element)

public override configurationelementcollectiontype collectiontype

}protected override string elementname

}} 繼承自configurationelementcollection的類,必須override以上4個方法。

siteusers是siteuser的集合,因此不難理解上述4個override方法的目的。

5. sitesetting類

public class sitesetting : configurationsection

set

}[configurationproperty("siteversion")]

public string siteversion

set

}[configurationproperty("closed", isrequired=true)]

public bool closed

set }

[configurationproperty("siteadmin")]

public siteadmin siteadmin

set

}[configurationproperty("siteusers")]

public siteusers siteusers }}

6. 在web.config新增我們的自定義配置

根據我們最初的設想,現在來對web.config進行配置

在中加入:

在中加入:

7. 檢驗結果

這樣就完成了嗎?是的。

來寫簡單的測試**,將我們的自定義配置資訊輸出來:

public partial class _default : system.web.ui.page }}

如何自定義配置節點

目錄 向專案中新增system.configuration引用。configurationsection configurationelement configurationelementcollection這幾個類都是在system.configuration中定義的,而該dll預設並不是新建乙個...

自定義Feign配置

在springcloud中,feign的預設配置類是feignclientsconfiguration,該類定義了feign預設使用的編碼器 解碼器 所使用的契約 預設支援springmvc註解 等,如果想使用feign自帶的註解 requestline工作,則需要在 feignclient的con...

oh my zsh自定義配置

預設的zsh主題robbyrussell已經很棒了,簡潔高效,能很好的顯示git的相關資訊,比如branch資訊,修改,刪除,新增等操作.但是多使用者的話就不能很好的展示,我們可以通過修改robbyrussell的配置檔案來達到我們想要的效果.一般情況下,我們安裝oh my zsh都是在自己的家目錄...