在Web服务geting中返回类对象改变了其命名空间

时间:2011-10-14 07:30:46

标签: c# .net web-services

我有一个web方法,它有一个用户定义的类作为返回类型。此类目前在另一个命名空间中。现在在我的Web服务使用者类中,当我尝试使用Web方法获取用户定义的类时,用户定义的类的命名空间将发生变化。并且它无法转换为其原始命名空间。那我错了?以及如何解决?

更新

在客户端,我写了,

GlobalSetting.ParentJob obj = (WS_SupportOutput.WS_Output()).GetJob(Jobnumber); 

我的Web服务中函数的GetJob(),其返回类型为GlobalSetting.ParentJob。但现在返回类型显示为WS_SupportOutput.ParentJob而非GlobalSetting.ParentJob

2 个答案:

答案 0 :(得分:2)

您正在使用可以使用任何语言编写的SOAP Web服务,因此没有任何关于数据库来自的命名空间或类的概念或知识。

Web服务WSDL将结果描述为一个复杂的值,因此消费者.Net构建了一个类来删除值。这看起来是相同的值,但你会注意到所有方法都缺失了,所有私有值都是如此。

简而言之,这是正常行为,如果您确实需要在同一个类中重新结束这些值,则需要编写代码以根据需要在调用者上转换Web服务结果。

然后,这个类需要由两个项目共享,因此在一个公共库中。

可悲的是,.Net在使用SOAP Web服务时没有为我们提供支持。

答案 1 :(得分:-1)

你可以重新序列化对象并更改命名空间,如果我给你一个我使用的那个,网上有很多例子可以找到它。