我还是新来的ASP.NET世界,所以我可以离开这里基地,但到目前为止,这是我的(有限)知识!ASP.NET Web服务结果,代理类和类型转换
可以说我在业务名称空间中有一个标准业务对象“Contact”。我编写了一个Web服务来从数据库中检索联系人信息,并将其返回。然后,我写一个客户端应用程序来请求所述细节。
现在,我还创建了一个实用的方法,它需要一个“联系人”,并与它做一些魔术,如Utils.BuyContactNewHat()
说。当然需要Business.Contact
类型的联系人。
然后我回到我的客户端应用程序,并且想要使用BuyContactNewHat
方法,因此我添加了对我的Utils命名空间的引用,它就在那里。然而,一个问题出现了:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
由于GetContact
返回类型是MyWebService.Contact
而不是Business.Contact
预期。我明白为什么会这样,因为在访问Web服务时,实际上是针对由WSDL生成的代理类进行编程。
那么,有没有一种“更容易”的方法来处理这种类型的不匹配?我正在考虑尝试创建一个通用转换器类,它使用反射来确保两个对象具有相同的结构,而不仅仅是将值从一个转移到另一个。