2009-04-27 8 views
4

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

答えて

8

DataContractSurrogateを使用できます。

...あなたは、PersonクラスにのDataContract 属性を適用することができますが、 が、これは常に可能ではありません。 の例では、Personクラスは、制御がない を超える別のアセンブリで定義された となる可能性があります。 にこの制限、 する1つの方法は、Personクラスをシリアル化を考えると

さは がDataContractAttribute でマークされ、 新しいクラスに必要なデータをコピーしていることを別のクラスでそれを代用します。目的は、 Personクラスを DataContractを DataContractSerializerにすることです。この は、非データ型の コントラクトクラスをシリアライズする1つの方法です。 ...

+0

ありがとうございました - MSDNはデータコントラクトサロゲートの使用を提案していますが、より簡単な回答があるかどうかはわかりませんでした。 http://msdn.microsoft.com/en-us/library/ms733064.aspx –

0

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

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

これはおそらく役に立ちますか?

Marc

+0

私はブライアンの答えは、ポイントに近いと思う。私は、クラスライブラリオブジェクトを制御することはできません - 彼の答えは、MSDNの示唆に近いです。 –

関連する問題