1

次のシナリオがあります。

スタンドアロン クラス ライブラリに存在する複雑なオブジェクトがあり、一部のオブジェクト プロパティには既定値があります。

オブジェクトは、WCF public メソッドの引数です。

このオブジェクトを WCF のクライアントでインスタンス化し、値をプロパティに割り当てて、それを WCF パブリック メソッドに渡します。

サービス側の WCF メソッドはそれを受け入れ、何でもします。

私の問題は、クライアント プロパティのデフォルト値でオブジェクトをインスタンス化するときに使用できないことであり、それらをコードで再度割り当てる必要があります。

ここのトピックに関する過去の質問に目を通しましたが、私のシナリオに関連するものは見つかりませんでした。引数のデータ コントラクトは実際にはありませんが、クライアントでは、オブジェクトはクラス ライブラリ自体からではなく、WCFServiceReference.MyClass などのサービス参照からインスタンス化されます (それ以外の場合、WCF メソッドはそれを引数として受け入れることができません)。

これらすべてのデフォルト値をクライアントで利用できるようにしたいと考えています。

ご支援いただければ幸いです。

ありがとう!

4

1 に答える 1

2

あなたのアプローチ (サービス プロキシ クラスを使用) では、クライアントは でマークされたプロパティのみを取得しますDataMember。これが、割り当てた既定値がクライアントに表示されない理由です。そのコードはシリアル化されていないため、WCF サービスでは送信されません。

コードを共有したい場合DataContractは、別のクラス ライブラリでクラスを宣言することで実現できます。WCF サービスとクライアントの両方がそのライブラリを参照するようにします。

于 2012-11-16T00:28:27.990 に答える