从webservice对象到类对象的类型转换

时间:2009-06-15 12:09:13

标签: vb.net service types

我创造了很多课程。我有webservices引用这些类,并包含类作为参数和返回对象。

当我调用weservice时,我必须将类转换为webservice对象,否则我可以键入转换错误。

是否存在一种在这些类型之间进行转换的通用方法,而无需手动分配值?

例如

public class person
 fname as string
 lname as string
end class

网络服务方法

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

在客户端

dim ws as new webservice

dim person = ws.getperson

我希望能够调用Web服务并返回数据类型并进行一般性修改而不是上述代替:

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

感谢

2 个答案:

答案 0 :(得分:1)

由于生成的Web引用代理类是公开类的接口的副本,因此您应该能够使用反射来执行此类转换。

但是,如果您的类不是很大或很多,我建议手动创建一个转换器来处理从Web服务类类型到“内部”类类型的转换,反之亦然。如果类的数量很大,并且如果定期添加新类或者他们的设计发生变化,我会考虑制作某种代码生成器,为您创建转换器功能。

答案 1 :(得分:1)

某些高级功能很难在vb.net中使用,但AutoMapper会很好地为您完成Person to Person类的基本翻译。