1

私のコードでは、現在次のようになっています。

#if (DEBUG)
using GetNewRecordNumber = {dev web service reference}.GetNewRecordNumber;
#else
using GetNewRecordNumber = {prod web service reference}.GetNewRecordNumber;
#endif 

私ができるように:

 using (GetNewRecordNumber.Tickets_GetNewRecordNumber getNum = new GetNewRecordNumber.Tickets_GetNewRecordNumber())

私のコードで。これはすべて正常に機能しますが、実行時に変更できるように、アプリケーション設定で切り替えを行いたいと思います。コードを複製する以外の実行時に切り替えが発生するように、これを実行する方法はありますか?

ありがとう!

4

2 に答える 2

1

プリプロセッサディレクティブはコンパイル前に動作するため、ルーン文字では動作しません。申し訳ありませんが、「#」ディレクティブを削除して、代わりにConfigurationManager.AppSettingsを使用する必要があります。

于 2013-01-09T16:02:07.997 に答える
0

この複製コードを検討するかどうかはわかりませんが、おそらく最も簡単なアプローチは、サービスのラッパークラスを作成し、そのラッパークラスを上記のような場所で使用することです。これらの#ifブロックを使用してすでに大量のコードを複製しているため、ラッパーを使用すると、コード全体が削減され、よりクリーンになる可能性があります。

もう1つのオプションは、サービス参照を手動で変更して、必要なすべてのメンバーを定義する共通のインターフェースから継承するようにすることですが、参照を頻繁に更新する必要がある場合は、これはお勧めできません。

于 2013-01-09T15:57:53.130 に答える