我目前的项目正在使用 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 方法来使用“更新”的服务方法。我的问题是:
- 有没有办法覆盖以前的方法而不生成新的类型来适应更新?
- 每次更新 WSDL时我都必须手动清理它吗?
- 我是否错误地更新了服务参考?我需要使用 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