2011-06-09 3 views
2

私は旅行(列車、飛行機など)時にコードとしてテスト/コーディングしているときに必ずネットワーク接続する必要はありません。私は、接続が検出されない場合、いくつかのコードをスキップするプリコンパイラ条件をセットアップしたいと思います。確かに私はエラーに対処することができますが、私はそのロジックをコードベースの一部としては望んでいません。これを行う方法はありますか?おそらくマクロス?C#/ Visual Studioでプリコンパイラディレクティブ経由でネットワーク接続を検出できますか?例えば#if ConnectedToNetwork

例:私はそうは思いません

#if ConnectedToNetwork 
    PerformFunctionThatRequiresNetwork(); 
#else 
    DoSomethingElseThatDoentRequireNetwork(); 
#endif 
+3

実行時のチェックではなく、コンパイル時のチェックをしてもよろしいですか? –

+0

ところで、C#にはプリコンパイラがありません。 –

+0

@ John Saunders:右、 "プリプロセッサ" –

答えて

2

あなたは何のネットワークを持っていないときには、知っていますか?もしそうなら、「ネットワークなし」の設定を持つ新しいビルド定義を設定し、ネットワークがないことを知っているところでデバッグするときに使用してみてください。プログラムのプリコンパイル・ステップを作成するよりも、これが開発上の問題であるため、これはずっと簡単だと思います。

"私はこれをプリコンパイルで実行する必要があります"に関しては、ネットワークを呼び出し、 "非ネットワーク"バージョンをコンパイルするコードを分けます。これは、デバッグのためのコンパイルステップ中に簡単にスワップして問題を回避することができます。

もう1つの質問は、これが実行時に提供される方が良いかどうかです。ユーザーがネットワークを持たないときにネットワーキングビットをオフにするか、あるいは例外を介して単にこのような事態を処理するだけですか?

0

...あなたが望むものに 最も近いものは、取引所がその場でファイルが、私は、このような考えていないことを、プラグインのようなものだろう物事が存在する。

私は最善のことは、プロキシクラスを介して手渡すことだと思います。これは、ネットワーク化/非ネットワーク化が必要な機能へのインタフェースを作成し、2つの異なるクラスを実装します。次に、ネットワークの設定や検出に基づいて適切なハンドラクラスをロードします。

HTH

マリオ

関連する問題