.NET如何为app.config生成架构?

时间:2012-11-08 14:12:13

标签: .net configuration app-config configurationmanager

使用ConfigurationManager code/annotation配置,我可以为app.config结构定义一个丰富的类型化模型。 是否有一种方法(或工具或特殊咒语)从这个基于代码的模型生成相应的XSD?

拥有XSD架构使 awesome 能够编辑配置文件! (从没想过我会说:)

enter image description here

1 个答案:

答案 0 :(得分:3)

到目前为止,我找到了看起来很漂亮的Configuration Section Designer VS插件,除了代码之外它还会生成XSD!
但这是一个仅限设计人员的解决方案,缺乏一点灵活性(另外我担心基于设计人员的解决方案难以扩展)。

LATER EDIT

我最终给了Configuration Section Designer一个更严重的机会,我很喜欢它!事实证明,它对我的​​目的来说非常灵活。这是我的配置定义的一部分:

enter image description here

优点:

  • 易于使用
  • 为配置文件生成XSD
  • 生成(简单的)app.config文件
  • 灵活,支持ConfigurationManager公开的大量自定义。以下是我使用过的一些内容:
    • Enum支持(一直到生成的XSD,所以在填写属性值时获得IntelliSense
    • 部分的“默认集合”,因此您可以支持<section><item/><item/><section>而不是<section><items><item/><item/></items><section>
    • 对属性(及相关转换器)类型'System.Type'的开箱即用支持
    • 生成强类型元素集合的选项(实现ICollection)
    • 输入验证器,包括自定义(自己动手)
    • 用于加载/存储具有任何类型属性的元素的类型转换器,包括Roll-your-own
    • 配置元素继承

我确信还有其他一些我忘了的事情。

一些缺点:

  • 文档并非详尽无遗(尽管它确实向您发送了正确的方向)
  • 有时会出现的错误不是很明确(沿着“CodeDom中的某些内容”),但到目前为止,我的模型中一直存在问题(例如,我忘了分配属性)。

但这些都是微不足道的。

总的来说,我能够快速轻松地完成工作。竖起大拇指!