2011-02-03 12 views
1

一般的な問題は、プログラムがコンパイルされることがありますが、外部(ユーザー/環境)の設定によってアプリケーションがランタイム中にクラッシュする可能性があるということです。私はルールを持ってしたいと思います(実際にはランタイム中に実行悲しいかな)すべてのコード上でチェックを実行別に設定/設定によるエラーを避ける最善の方法BEFOREランタイム

、 は、コヒーレントであること、少なくともデフォルト値の設定、ビルド中にを主張するために設定します。

デフォルト設定がハードコードされている場合、最も簡単な場合は、ことがあります

Directory defaultDir = new Directory("D:\\Data"); 
UserLogin usr1 = "Jesse"; 
UserLogin usr2 = "James"; 

(ええ、「BOOH」;これは一例であり、はそのunsignificant詳細にはありませんコメント/答えをしてください...あなたの一部にとっては難しいことは分かっていますが、REFRAINしてください:-))

DURING Buildをチェックする方法はありますか?「D:¥Data」が存在し、usr1とusr2は異なるログイン文字列など...

私はsuです.NETにアサーションメカニズムがあり、ユニットテストがあるかもしれません(この特定のケースでは、非常に軽い使用/必要性のために後者の原因を避けたいと思います)。しかし、私はUnit Testsが何のために設計されているのかと推測しています...)

+0

デフォルト値の設定が間違っています。あなたは例外を取得しません、それはちょうど正しく動作しません、なぜそれが明らかではありません。あなたはもっと多くの時間を無駄にするでしょう。 –

+0

問題は実際にはいくつかのクラスの設定が壊れているのを避け、ランタイム中にしか実現しないようにしたいということです。 –

答えて

1

プロジェクトのプロパティでは、ビルド前に実行するコマンドを設定できるので、設定を確認するexeを作成して実行できます"ビルド前のイベントコマンドライン"

+0

Ok。また、設定が設定されていない場合や、XMLファイル内の他の場所、または時にはハードコードされたデフォルト値がある場合はどうなりますか? –

+0

あなたのアプリケーション設定はあなたが必要とする任意の場所で行うことができます。CheckSettingsConstraints.exeは必要な処理を行います:xmlファイルの解析/ c#ファイルの読み込み/レジストリキーの読み込み、Webサービスの呼び出し....(ハードコード値)。 –

関連する問題