2009-06-15 19 views
1

私はクラスの束を作成しました。私はこれらのクラスを参照するwebservicesを持っていて、クラスをパラメータとして持ち、オブジェクトを返します。Webサービスオブジェクトからクラスオブジェクトへの型変換

私がweserviceを呼び出すと、クラスをwebserviceオブジェクトに変換する必要があります。そうでないと、変換エラーが発生します。

手で値を割り当てなくても、これらのタイプを変換する一般的な方法はありますか?クライアントの例

public class person 
fname as string 
lname as string 
end class 

Webサービスメソッド

public getperson() as person 
return new person() 
end sub 

ため

dim ws as new webservice 

dim person = ws.getperson 

私は、Webサービスを呼び出すことができotのliekとバックデータ型を返します代わりに上記の代わりに汎用コバジョンを使用します。

dim wsPerson as wsReference.Person = ws.getperson() 

おかげ

答えて

1

ウェブの参照用に生成されたプロキシクラスが露出したクラスのインタフェースのコピーであるので、あなたはこのような変換を行うためにリフレクションを使用することができるはずです。

しかし、あなたのクラスがそれほど大きくない、または多くない場合は、Webサービスクラスの型から "内部"のクラス型への変換を扱うコンバータを手動で作成することをお勧めします。クラスの数が多く、定期的に新しいクラスが追加されたり、デザインが変更されたりする場合は、コンバータの機能を作成するコードジェネレータを作成します。

1

vb.netからいくつかの高度な機能を使用するのは難しいですが、AutoMapperはPerson to Personクラスの基本的な翻訳をうまく行います。

関連する問題