4

いくつかのオブジェクトを公開するクラスライブラリを使用しています。これらのオブジェクトには、クライアントが必要とするデータを保持するいくつかのプロパティがあります。オブジェクトをクライアントに返すWCFサービスを作成したいのですが、DataContract属性とDataMember属性を追加するためにクラスライブラリを更新できません。これらのオブジェクトを公開する最も簡単な方法は何ですか?

4

2 に答える 2

9

DataContractSurrogateを使用できます。

... DataContract属性をPersonクラスに適用できますが、これが常に可能であるとは限りません。たとえば、Personクラスは、制御できない別のアセンブリで定義できます。

この制限がある場合、Personクラスをシリアル化する1つの方法は、DataContractAttributeでマークされた別のクラスに置き換え、必要なデータを新しいクラスにコピーすることです。目的は、PersonクラスをDataContractSerializerにDataContractとして表示することです。これは、非データコントラクトクラスをシリアル化する1つの方法であることに注意してください。..。

于 2009-04-27T18:43:32.973 に答える
0

オブジェクトに[DataContract]属性と[DataMember]属性を設定できない場合は、XmlSerializerを使用してそれらを公開する方法を見つける必要があります。

サービスコントラクトまたは個々のOperationContractのいずれかで[XmlSerializerFormat]属性を指定することにより、XmlSerializerを使用するサービスまたはオペレーションを定義できます。

それは多分助けになりますか?

マーク

于 2009-04-27T18:44:24.780 に答える