1

我目前的项目正在使用 VS 2010。我是 WCF 的新手。我以前使用过 WebServices,但我从来不需要生成实际的代理。我正在使用 WCF 服务引用调用 Web 服务的当前项目。相当简单明了。我添加了一个新的服务参考,并且在初始设置中一切正常。

更新 WSDL 后,我只需右键单击服务引用并选择“更新引用”。这样做之后,现在有重复的对象名称,并附加了数字“1”。例如:

从 WSDL 结果初始生成:

GetWidget (getWidgetRequest)
GetWidgets (getWidgetRequest)
GetWidgetGroups (getWidgetRequest)

更新后,我现在有这个:

GetWidget (getWidgetRequest)
GetWidgets (getWidgetRequest)
GetWidgetGroups (getWidgetRequest)

GetWidget1 (getWidgetRequest1)
GetWidgets1 (getWidgetRequest1)
GetWidgetGroups1 (getWidgetRequest1)

所以现在我必须使用 GetWidget1 方法来使用“更新”的服务方法。我的问题是:

  1. 有没有办法覆盖以前的方法而不生成新的类型来适应更新?
  2. 每次更新 WSDL时我都必须手动清理它吗?
  3. 我是否错误地更新了服务参考?我需要使用 svcutil.exe 吗?

我在以 .datasource 结尾的服务引用中找到了 4 个文件。它们都有新的类型名称(GetWidget1.datasource、GetWidgetGroups1.datasource 等)。以下是文件内容的示例:

<GenericObjectDataSource DisplayName="GetWidget1" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
   <TypeInfo>GetWidget1, Service References.WidgetService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

我们正在使用 Visual Studio 2010 版本 10.0.40219.1 SP1Rel

4

1 回答 1

1

你用的是vs 2010?

这是旧版本中的错误,但已在 2010 年修复 - 请参阅此处

于 2012-10-10T16:17:51.953 回答