5

サード パーティのライブラリを使用している WCF サービスがあります。ライブラリはシリアル化できません。

シリアライズ可能なカスタム型があり、サードパーティ ライブラリのクラスもプロパティとして含まれています。次のようになります。

MyClass.ThirdPartyClass

問題は、サービスから MyClass を送信すると、ThirdPartyClass がサービス中に割り当てた値を失うことです。ThirdPartyClass のソースがないので、シリアル化可能としてマークできます。

ThirdPartyClass をシリアライズ可能としてマークする方法や、値を保持する他の方法はありますか?

4

2 に答える 2

4

サービスを通じて提供したいデータを含むデータ転送オブジェクトを作成することをお勧めします。ThirdPartyClass を MyClass の一部にする代わりに、新しい DTO を使用し、ThirdPartyClass のデータをサービスから返す前に DTO にマップします。おそらく、AutoMapper のようなフレームワークがこのタスクをサポートしてくれるでしょう。
これは余分な労力を意味しますが、サービスのクライアントとサード パーティのライブラリの間に抽象化の層も作成します。これにより、サービスのインターフェイスを変更することなく、後で別のライブラリに変更できます。

于 2013-11-05T22:04:06.627 に答える