2010-02-21 71 views
3

我有一个web服务 - 所谓MyCompany.WebService1ASMX Web引用不更新后的服务回报类型更新

我这用我的ASP.net web应用的web参考参考。

Theres在此Web服务中称为“GetDeal”的方法,返回一个“交易”对象。 该交易对象目前看起来(例如)是这样的:

public class Deal 
{ 
    Public string Name {get;set;} 
    Public string Description {get;set;} 
} 

这个类是在不同的装配:MyCompany.Model

Web服务的引用该组件。

在我的网络应用程序中,我可以调用GetDeal方法。 这将返回Service1.Deal(service1只是Web引用的名称)

我可以访问上面的两个属性。

我现在已经改变了Deal类,并添加了更多的属性。 但是,我无法在我的Web应用程序中看到这些新属性。

我已经更新了Web应用程序中的Web服务。 我重建了几次Web服务,试图删除MyCompany.Model引用,并重新添加它等...

我无法弄清楚发生了什么变化......这是工作 - 我改变了模型之前,它正确地更新了参考...

任何我错过了?

回答

5

只要以下几点得到满足,这应该工作:

  • 新的属性标记为Public,必须读/写(必须有一个getter和setter方法)
  • 你有编译主机Web应用程序(暴露Web服务的Web应用程序)。
  • (您可以尝试在Web浏览器中调用Web服务以检查新属性是否可见)。
  • 你已经更新Web引用客户端应用程序(和重建应用程序)
+2

还有一点要补充:新属性必须有一个'set'方法。这是过去一些头疼的原因。 – Aaronaught 2010-02-21 20:41:05

+0

@aaronaught - 谢谢!就是这样! – Alex 2010-02-21 22:33:22

+0

确切地说,谢谢。 – 2015-08-30 08:21:00

2

除了马丁什么建议,你必须真正运行更新的服务。

我建议您查看WSDL以查看更改是否生效。将“?wsdl”添加到浏览器中的Web服务URL中,并查看您的新属性是否显示在顶部的XML模式中。