1

簡単な質問と正しいアプローチについて疑問に思っています。

AppsettingsのappConfigで、入力した値を検証したいので、たとえば、

<appSettings>
    <add key="UseEncryption" value="false"/>
    <add key="MaxThreshold" value="10"/>
    <add key="ProcessDate" value="01/12/2012"/>
</appSettings>  

プログラムは通常どおりにコンパイルおよび実行されます。ただし、サポートチームはこれらの値を変更して、アプリを再実行できます。これらすべての値を変更し、途中でそれらを検証するようにGUIをコーディングすることに照らして、それらを検証する別の方法があります。

たとえば、MaxThreholdがIntであり、Processdateが有効な日付であることを確認したいなどです。

アプリケーションの起動時に実行される関数を作成していました。この関数は、各設定をチェックし、正しくない場合はアプリケーションを停止します。

これが最善のアプローチですか..アプリの設定ごとにバリデータータイプの機能を使用します。

CurrentEnvironmentというクラスを保持しており、ここにはAppConfigで必要な設定のすべてのget/setがあります。したがって、キーごとに、値をチェックするためのバリデーター関数もあります。

よろしく

4

2 に答える 2

4

アプリケーションの起動時に実行される関数を作成していました。この関数は、各設定をチェックし、正しくない場合はアプリケーションを停止します。

これは優れたアプローチですが、実行の開始時にこの関数が実行されることを確認する必要があります。

別のアプローチは、カスタム構成セクションを作成することです(カスタムプロパティを継承しConfigurationSectionて追加します)-これらのプロパティがテストするタイプであることを確認してください。構成ファイルが逆シリアル化されるときに、型を適切に解析できない場合、アプリケーションは起動しません。

于 2012-12-12T13:00:32.210 に答える
1

キーごとに、オブジェクトでTryParseを使用します

DateTime.TryParse(appsetting [keyname])

于 2012-12-12T13:01:39.640 に答える