【问题标题】:.NET How to generate schema for app.config?.NET 如何为 app.config 生成架构?
【发布时间】:2012-10-28 17:52:39
【问题描述】:

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

拥有 XSD 架构使得编辑配置文件真棒! (从没想过我会这么说:)

【问题讨论】:

    标签: .net configuration app-config configurationmanager


    【解决方案1】:

    到目前为止,我发现了漂亮的Configuration Section Designer VS 插件,它除了代码之外还生成 XSD!
    但这是一个仅限设计师的解决方案,缺乏一点灵活性(另外恐怕基于设计师的解决方案更难扩展)。

    稍后编辑

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

    优点:

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

    我确定还有其他事情我忘记了。

    一些缺点:

    • 文档并不详尽(尽管它确实让您朝着正确的方向前进)
    • 有时出现的错误不是很明确(类似于“CodeDom 中出现'splat'”),但到目前为止,这一直是我的模型中的一个问题(例如,我忘记分配属性)。

    但这些都是小麻烦。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2019-08-18
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      相关资源
      最近更新 更多