簡體   English   中英

ConfigurationManager.GetSection跳過重復項

[英]ConfigurationManager.GetSection Skips Duplicates

簡而言之,.Net ConfigurationManager.GetSection方法跳過重復項,我正在尋找處理此問題的最佳實踐。 我有一個包含這樣的配置文件:

   <views>
     <view name="BusinessUnitsView" Desc="desc1"/>
     <view name="BusinessUnitsView" Desc="desc2"/>
   </views>

我有一個配置加載到我們派生的ConfigurationElementCollection派生集合的對象圖。 在加載上述內容后,圖中的視圖集合中只有一個項目 - 我的理解是這只是ConfigurationManager處理重復項的方式。 具有相同鍵的最后一項獲勝。

我可以使用BaseAdd(element,true)在找到的副本上拋出異常。 但是,如果可能的話,我想讓對象完全加載WITH duplicatelic,因為配置在服務層讀取,我想檢測並處理服務的消費方面的問題。

我是否有任何選項可以修改添加到收集工作的方式?

您需要創建自己的ConfigurationSection 看到這里這里 (第二個鏈接的方法已被棄用,但它可能仍然有些亮點)

這允許您將內部配置變量表示為集合,並設置DefaultValueIsRequired等屬性。

也許你只想迭代列表,但配置的主要思想是你可以做到的

var view = SomeConfigClass["BusinessUnitsView"];

這只允許一個答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM