2009-04-07 15 views
0

戻る2.0直列化の時代に、私は、次の例につながるオブジェクトの直列化されたバージョンを作成できます。私はSerializableを()属性でこれを行うと、その後追加しますWCF XMLシリアル化

<transactionMessage messageDate="1/1/2001 11:00PM" messageId="abc123"> 
    <transaction property1="Value" property2="value2" /> 
</transactionMessage> 

をXmlElement属性をアイテムに追加します。

<transactionMessage> 
    <messageDate>1/1/2001 11:00PM</messageDate> 
    <messageId>abc123</mesageId> 
    <transaction> 
    <property1>Value</property1> 
    <property2>Valu2</property2> 
    </transaction> 
</transactionMessage> 

通常、私は本当に舞台裏生成されたXMLを気にしないだろうが、このシステムは、複数の外部クライアントとのインタフェースされます:私が使用した場合のDataContract /データメンバーはしかし属性を、私はこのようになります何かを得ます既に2.0のシリアライゼーションスタイルに基づいている別のシステムと話をしていますが、構造を似たままにしてWCFの強化機能を追加したいと考えています。

DataMember属性は、基本的に、すべての要素ではなく属性を持つ最初のサンプルに似ていますか?

答えて

2

DataContractシリアライザは高速化のために最適化されており、設計者はXMLノードの属性をサポートすることがスピード要件には適していないと判断したようです。

DataContractシリアライザは属性をサポートしていません。必要な場合は、代わりに尊敬できるXmlSerializerを使用してください。

マーク

+0

いいね。私は相互作用している人々が少し不平を言うだろうと確信していますが、彼らはそれを乗り越えることができます!助けてくれてありがとう。 – RubyHaus

0

私は、WCFを使用しますが、あなたのmessageDateとメッセージIDプロパティの前

[XmlAttribute] 

を追加してみていませんよ。

0

まあ、もう少しそれはこれに応じて可能ではないように見える検索後:MSはあなたにそれを変更するオプションを与えないことを残念だ

XMLSerializer vs DataContractSerializer

を。