私はWCFクライアントサーバーをセットアップしています。サーバー側では、サービス メソッドの戻り値の型としてインターフェイスを使用してから、コントラクト/サービスに<ServiceKnownTypeAttribute>
. これはすべて正常に機能しています。
ただし、非常に厄介な問題が 1 つあります。クライアントにサービス参照を追加すると、生成されたスタブ メソッドの戻り値の型はすべてobject
. したがって、Intellisense はクライアントに存在しなくなりました。戻り値を完全に使用でき、プロパティにアクセスできますが、Intellisense を「復元」できるようにキャストを行う必要があります。
例:
サーバー方式:
<OperationContract()>
<ServiceKnownTypeAttribute(GetType(Something))>
Function GetSomething() As ISomething Implements Iservice.GetSomething
生成されたスタブ:
Function GetSomething() As Object Implements Iservice.GetSomething
クライアント コード (スタブの戻り値の型がオブジェクトであるため、ここでキャストする必要があります):
Dim s As ISomething= CType(client.GetSomething(), ISomething)
私は何かを見逃していますか、それともこれは単なる正常な動作ですか. オブジェクトをシリアル化でき、すべてが機能しているため、スタブがタイプ固有ではない理由がわかりません。
ありがとう
ジョナス