我创造了很多课程。我有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()
感谢
答案 0 :(得分:1)
由于生成的Web引用代理类是公开类的接口的副本,因此您应该能够使用反射来执行此类转换。
但是,如果您的类不是很大或很多,我建议手动创建一个转换器来处理从Web服务类类型到“内部”类类型的转换,反之亦然。如果类的数量很大,并且如果定期添加新类或者他们的设计发生变化,我会考虑制作某种代码生成器,为您创建转换器功能。
答案 1 :(得分:1)
某些高级功能很难在vb.net中使用,但AutoMapper会很好地为您完成Person to Person类的基本翻译。