我執行一個系統監視項目稍微複雜的配置部分:配置驗證在.NET
<monitoring>
<components>
<component name="Remote Server"
statusProviderType="ClientEndpoint"
statusProviderName="endpoint1" />
</components>
</montioring>
<system.serviceModel>
<client>
<endpoint name="endpoint1"/>
<!-- Config removed for brevity -->
</client>
</system.serviceModel>
如在上面的例子中,這些配置元素可以參考其他配置元素。在這種情況下,客戶端端點必須實施作爲監控項目一部分的預定合同。
內置配置處理處理任何明顯的語法錯誤和值超出有效範圍的簡單錯誤。問題是配置是更復雜的錯誤的來源:
- 引用一個不存在的元素。
- 引用不符合某些條件的類型。
很明顯,我希望撿起這些錯誤,但應該在應用程序中進行驗證?
我目前考慮這些選項,但我不知道任何人是正確的:
- 配置元素驗證本身和在讀它拋出異常。將所有內容保持在配置級別,但在嘗試「構建」配置節以將其寫入配置文件時會引入問題。
- 使用配置的組件會在配置值傳遞給它時驗證配置值,並根據收到的信息拋出異常。允許配置元素具有更大的靈活性,但更難確定問題的來源。
- 使用配置的組件驗證其操作所需的配置,並在配置無效時拋出異常。這很好地將行爲從配置中分離出來,但是當配置成爲問題的根源時,它就不那麼明顯了。
此外,哪些異常適合拋出我可能處理的錯誤種類?獎金積分與你的答案有很好的推理。我很想知道所有可用的選項,但知道如何配置可以調試一些系統,我真的想要一個明智的解決方案。
驗證XML已由.NET配置系統充分執行。我期望檢測到的錯誤比這些更復雜。 – 2009-11-19 17:34:55