4

DataUnification.ClientData.ClientInfo.NET クラス ライブラリ プロジェクトAで呼び出されるシリアライズ可能な POCOがあります。

プロジェクトBで定義された Web サービスのパラメーターで使用されます。

public XmlDocument CreateNewClient(ClientInfo ci, string system)

プロジェクトCからこの Web メソッドを呼び出し、パラメーターで元のDataUnification.ClientData.ClientInfo型を使用したいと考えています。ただし、生成されたプロキシ クラスにより、別のタイプになりました: WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo.

.NET に関する限り、これらは同じ型ではありません。

どうすればこれを回避できますか?

4

4 に答える 4

2

「指定された参照アセンブリで型を再利用する」をチェックするだけで元の型を使用でき、詳細設定で Web サービスのプロキシを生成するときに元の型を含むアセンブリを選択できます。

ここに画像の説明を入力

于 2012-07-02T12:17:55.633 に答える
0

私の最初の提案は、生成されたプロキシの代わりに手書きのプロキシを使用することです。これにより、どのタイプを使用するかを完全に制御できます。

私の 2 番目の提案は、Web Services Factory のようなツールを使用することです。このツールには、コードを生成するときに既存のクラスを再利用できるオプションがあります (クラスが適切である場合)。

于 2010-05-13T01:45:33.623 に答える
0

automapper http://automapper.codeplex.com/を使用して、WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo インスタンスから新しい DataUnification.ClientData.ClientInfo を作成できます。

于 2010-05-13T01:46:22.523 に答える
0

「すべてのファイルを表示」し、生成されたの内容を新しいファイルにコピーしてから、生成さreference.csれたプロキシとそのすべての依存ファイルを削除できます。

ここで、新しい reference.cs で、生成された dto クラスを削除し、すべての参照を更新します。

それが短い醜い方法です。

于 2010-05-13T01:48:09.850 に答える