我执行一个系统监视项目稍微复杂的配置部分:配置验证在.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