我有一个web方法,它有一个用户定义的类作为返回类型。此类目前在另一个命名空间中。现在在我的Web服务使用者类中,当我尝试使用Web方法获取用户定义的类时,用户定义的类的命名空间将发生变化。并且它无法转换为其原始命名空间。那我错了?以及如何解决?
更新
在客户端,我写了,
GlobalSetting.ParentJob obj = (WS_SupportOutput.WS_Output()).GetJob(Jobnumber);
我的Web服务中函数的GetJob(),其返回类型为GlobalSetting.ParentJob
。但现在返回类型显示为WS_SupportOutput.ParentJob
而非GlobalSetting.ParentJob
。
答案 0 :(得分:2)
您正在使用可以使用任何语言编写的SOAP Web服务,因此没有任何关于数据库来自的命名空间或类的概念或知识。
Web服务WSDL将结果描述为一个复杂的值,因此消费者.Net构建了一个类来删除值。这看起来是相同的值,但你会注意到所有方法都缺失了,所有私有值都是如此。
简而言之,这是正常行为,如果您确实需要在同一个类中重新结束这些值,则需要编写代码以根据需要在调用者上转换Web服务结果。
然后,这个类需要由两个项目共享,因此在一个公共库中。
可悲的是,.Net在使用SOAP Web服务时没有为我们提供支持。
答案 1 :(得分:-1)
你可以重新序列化对象并更改命名空间,如果我给你一个我使用的那个,网上有很多例子可以找到它。