-1

.configファイルにいくつかのカスタム構成エントリがあります。すべてのロード/正常に動作します。提供されたデータをチェックする適切な方法があるかどうか疑問に思いました-いくつかのビジネスロジックを追加します。例えば...

<logFileSettings>
    <logFile fileName="foo.log" uniqueName="log1">
        <alerts>
             -= snip =-
        </alerts>
    </logFile>
    <logFile fileName="bar.log" uniqueName="log2">
        <alerts>
             -= snip =-
        </alerts>
    </logFile>
</logFileSettings>

ここで、各カスタムセクションのuniqueNameが一意であることを確認したいと思います。ConfigurationSectionを暗示するカスタムクラスの外でこれを手動で行う必要がありますか、それともそこで行うことができますか?(たとえば、設定ファイルなどを読み取った後のデリゲートのようなものですか?)

4

1 に答える 1

0

これは、データ ストア (この場合は web.config) ではなく、データのコンシューマーの仕事のように思えます。

コードから web.config を読み書きすることは可能ですが、ほとんどの場合、これは非常に悪い考えです (たとえば、書き込みは常に Web アプリケーションを再起動し、読み取りでも再起動することがあります)。これはあなたが求めていることではないことは理解していますが、無謀な放棄で web および app.config ファイルを読み書きする人の数に恐怖を感じているため、指摘したかったのです。

ファイルの解析時に発生するイベントがあるかどうかという最初の質問に対して、私はいくつかの読み取りを行い、何も見つかりませんでした. ただし、おそらく web.config の Visual Studio XML スキーマを変更でき、少なくとも設計時のエラーが発生します。

または、より重要なこととして、検証ロジックをデータのコンシューマー (ロギング クラスのように見えます) に移動することをお勧めします。

于 2010-09-21T04:21:29.083 に答える