【发布时间】:2010-09-05 14:54:41
【问题描述】:
我对 ASP.NET 世界还很陌生,所以我可能会在这里偏离基础,但到目前为止,这是我(有限的)知识中最好的!
假设我在 Business 命名空间中有一个标准的业务对象“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 生成的代理类进行编程。
那么,有没有一种“更简单”的方法来处理这种类型的不匹配?我正在考虑尝试创建一个通用转换器类,它使用反射来确保两个对象具有相同的结构,而不是简单地将值从一个对象传输到另一个对象。
【问题讨论】:
标签: c# asp.net web-services