如何从Web服务返回或转换相同类型

时间:2012-02-07 06:08:18

标签: asp.net web-services asmx

我在asp.net(ASMX)中创建了一个用于缓存目的的Web服务。 使用此WS的网站请求并获取共享类型对象(即,网站和Web服务都使用包含该对象类型的相同DLL)。

但会发生的是,该网站从Web服务获取响应,并且该类型由WS的名称空间包装。

例如

。 如果我在共享DLL中有一个类Core.Person webservice返回Core.Person。 该网站(即使它知道core.person)将获得WebServiceNS.Person

这不允许我施放它。

从WS获取这些对象时,如何仍然使用相同的原始DLL命名空间?

感谢

3 个答案:

答案 0 :(得分:1)

一种解决方案可以是,而不是使用ASMX服务使用WCF服务。 WCF服务允许您使用现有结构进行Web服务调用。在这种情况下,您无需创建服务的参考。您可以在两个项目中使用相同的Core.dll

如果您需要任何帮助,请发表评论。

希望这适合你。

答案 1 :(得分:1)

您不应该使用ASMX服务进行新开发。这是一项传统技术。

此外,它没有能力做你想做的事。另一方面,WCF可以做到这一点。

答案 2 :(得分:0)

实际上,当我们添加web服务引用时,VS会为WS所需的所有对象生成存根创建类。 (这些是基于Web服务器上托管的WSDL文件)。我们与web服务的所有通信都是使用此存根完成的。我想你必须为此编写自己的copy constructor