DataReader は DataTable の構築に使用されるため、DataReader は DataTable よりも高速であることは誰もが知っています。
したがって、既に DataTable があるとすれば....なぜそれを DataReader に変換したいのでしょうか?
IDataProvider という内部インターフェイスを作成しています。このインターフェースは、ローカルと WebService の両方で実装されることを意図しています。インターフェイスには、いくつかの基準情報を受け取り、いくつかのデータを返すメソッド「Getdata」があります。
DataReader は最も高速なデータ取得メカニズムであるため、これを "GetData" メソッドの結果の型として使用したいと考えています。ただし、DataReader はシリアル化できないため、Web サービスを介して Web 経由で転送できないこともわかっています...
Web の場合、ローカル プロキシ クラスでデータを DataTable として要求し、それをローカルで DataReader に変換します。
このように、ローカル アプリケーションは、ローカルまたはリモートでデータにアクセスしているかどうかを知る (または気にする) 必要はありません。
ただし、これを行うには知っておく必要があります...既存の DataTable を DataReader でラップするにはどうすればよいですか?
更新: Web サービスを使用する DataProvider は、そうでないものと切り替え可能であるため、私のビジネス ロジックは Web サービスに保持されません。したがって、businessLogic はクライアント アプリで保持されます。
FWIW私は.Net 3.5 SP1を使用しています