2

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

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

在此处输入图像描述

4

1 回答 1

3

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

稍后编辑

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

在此处输入图像描述

优点:

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

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

一些缺点:

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

但这些都是小麻烦。

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

于 2012-11-12T13:31:42.343 回答