標準の wsdl を使用して Web サービス操作を呼び出す必要がありますが、データ オブジェクトはクライアントとサーバーで異なる必要があります。
共通ライブラリでデータ オブジェクトのインターフェイスを使用し、クライアントとサーバーでそのプロキシ クラスを作成します。
そしてインターフェースを使ってオペレーションコントラクトを宣言しているのですが、WCFが認識しません。
私はまだ DataContractSerializerBehavior を使用して knownTypes を設定しようとしましたが、まだ成功していません。
誰かが私を助けることができますか?詳細を含む完全なソリューションを添付しました。
public interface Thing
{
Guid Id {get;set;}
String name {get;set;}
Thing anotherThing {get;set;}
}
[DataContract]
public class ThingAtServer: BsonDocument, Thing // MongoDB persistence
{
[DataMember]
Guid Id {get;set;}
//...
}
[DataContract]
public class ThingAtClient: Thing, INotifyPropertyChanged // WPF bindings
{
[DataMember]
Guid Id {get;set;}
//...
}
[ServiceContract]
public interface MyService
{
[OperationContract]
Thing doSomething(Thing input);
}
ここをクリックして、TestCases を使用した GitHub のサンプル プロジェクトを参照してください。