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