我正在为系统监控项目实现一个有点复杂的配置部分:
<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>
如上例所示,这些配置元素可以引用其他配置元素。在这种情况下,客户端端点必须实现预定合同,该合同是监控项目的一部分。
内置配置处理处理任何明显的语法错误和简单错误,其中值超出有效范围。问题在于配置是更复杂错误的来源:
显然,我希望了解这些错误,但应该在应用程序中进行验证的位置?
到目前为止,我已经考虑了这些选项,但我不确定它们是否正确:
此外,哪些异常适合抛出我可能处理的错误?奖励积分与你的答案有充分的理由。
我对所有可用的选项感到相当无能为力,但是知道使用某些系统调试配置有多困难,我真的想要一个合理的解决方案。
答案 0 :(得分:1)
我离开了,问了一些同事,研究了.NET类如何处理这类问题并得出了一些澄清:
InvalidOperationException
并派生类以指示对象状态中的错误。它并不表示配置问题来自哪里。显然,这给了我一些我可以坚持的规则,对我的配置系统感到高兴:
InvalidOperationException
或类似问题处理,因为它不知道它所使用的值来自何处,因此只能指示它的状态不正确。如果其他人正在进行复杂的配置,我希望这会有所帮助。
答案 1 :(得分:0)
使用DTD和XML验证工具。 Here is the description