2

コード/アノテーション構成を使用して、app.config構造のリッチな型付きモデルを定義できます。このコードベースのモデルから対応するXSDを生成する方法(またはツールまたは特別な呪文)はありますか?ConfigurationManager

XSDスキーマがあると、構成ファイルを編集するのに最適です。(私がそれを言うとは思わなかった:)

ここに画像の説明を入力してください

4

1 に答える 1

3

これまでのところ、見栄えの良いConfiguration Section Designer VSプラグインを見つけました。これにより、コードに加えてXSDが生成されます。
ただし、これは設計者専用のソリューションであり、柔軟性が少し欠けています(さらに、設計者ベースのソリューションは拡張が難しいと思います)。

後で編集

私はConfigurationSectionDesignerにもっと深刻なチャンスを与えることになり、それが大好きです!結局のところ、それは私の目的のために十分に柔軟です。これが私の構成定義の一部のショットです:

ここに画像の説明を入力してください

長所:

  • 使いやすい
  • 構成ファイルのXSDを生成します
  • (必要最低限​​の)app.configファイルを生成します
  • 柔軟性があり、ConfigurationManagerによって公開される多くのカスタマイズをサポートします。これが私が使用したもののいくつかです:
    • 列挙型のサポート(生成されたXSDに至るまで細流化されるため、属性値を入力するときにIntelliSenseを取得します
    • <section><item/><item/><section>セクションの「デフォルトコレクション」。代わりにサポートできます<section><items><item/><item/></items><section>
    • 属性(および関連するコンバーター)のタイプ「System.Type」のすぐに使用可能なサポート
    • 強く型付けされた要素コレクションを生成するオプション(ICollectionの実装)
    • カスタム(独自のロール)を含む入力バリデーター
    • Roll-your-ownを含む、あらゆるタイプのプロパティを持つ要素をロード/格納するためのタイプコンバータ
    • 構成要素の継承

他にも忘れてしまったことがあると思います。

いくつかの欠点:

  • ドキュメントは網羅的ではありません(ただし、正しい方向に送られます)
  • 時々現れるエラーは(CodeDomで「何かが「スプラット」になりました」の行に沿って)あまり明白ではありませんが、これまでのところ、それは私のモデルでは常に問題でした(たとえば、プロパティを割り当てるのを忘れました)。

しかし、これらは小さな迷惑です。

全体的に、私は仕事を素早く簡単に終わらせました。いいぞ!

于 2012-11-12T13:31:42.343 に答える