現在のプロジェクトでは 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 を使用しています