我在asp.net(ASMX)中创建了一个用于缓存目的的Web服务。 使用此WS的网站请求并获取共享类型对象(即,网站和Web服务都使用包含该对象类型的相同DLL)。
但会发生的是,该网站从Web服务获取响应,并且该类型由WS的名称空间包装。
例如。 如果我在共享DLL中有一个类Core.Person webservice返回Core.Person。 该网站(即使它知道core.person)将获得WebServiceNS.Person
这不允许我施放它。
从WS获取这些对象时,如何仍然使用相同的原始DLL命名空间?
感谢
答案 0 :(得分:1)
一种解决方案可以是,而不是使用ASMX服务使用WCF服务。 WCF服务允许您使用现有结构进行Web服务调用。在这种情况下,您无需创建服务的参考。您可以在两个项目中使用相同的Core.dll
。
如果您需要任何帮助,请发表评论。
希望这适合你。
答案 1 :(得分:1)
您不应该使用ASMX服务进行新开发。这是一项传统技术。
此外,它没有能力做你想做的事。另一方面,WCF可以做到这一点。
答案 2 :(得分:0)
实际上,当我们添加web服务引用时,VS会为WS所需的所有对象生成存根创建类。 (这些是基于Web服务器上托管的WSDL文件)。我们与web服务的所有通信都是使用此存根完成的。我想你必须为此编写自己的copy constructor。