2010-12-01 12 views
2

私はXmlSerializerを使ってシリアル化する多くのプロパティを持っています。出力を少し短くするために、それぞれの(単純な)プロパティに[XmlAttribute]というタグを付ける必要があります。私はそれを行うより簡単な方法があるのだろうかと思っています。すべての単純な型のプロパティが要素の代わりに属性として直列化されるように、クラスのデフォルトとして作る方法はありますか?[XmlAttribute]をクラスのデフォルトにすることはできますか?

答えて

0

code snippetsを作成できます。

すでに属性が設定されているプロパティに対して1つ作成し、それを書き込むときに使用します。

+0

ご回答いただきありがとうございますが、ここでコードスニペットがどのように役立つかはわかりません。もしあなたがもう少し詳しく説明できたら、私はとても感謝しています。 – newman

+0

@miliu - コードスニペットを作成した場合は、 'XmlAttribute'で修飾されたプロパティを作成するたびに使用できます。あなたが_existing_プロパティを装飾したい場合、これは役に立たないでしょう。 – Oded

2

いいえ、基本的には、さて、は、実行時にXmlAttributeOverridesを使用して作業を行い、コードで型を検査し、属性を適切に設定してから、シリアライザをキャッシュするようにします(XmlAttributeOverridesを使用するとキャッシュしないと、収集されません)。しかし、それはのように聞こえます。の作品です。

出力を短くします。あなたはXMLが必要ですが、データだけは何とか、他のオプションがありますをシリアライズ必要がない場合、XMLは、gzipで圧縮したり...非常にうまくもちろん

を収縮します。

+0

おかげさまでありがとうございます。それはもっと仕事のようです。私は個々のタグで生きなければならないと思う。 GZipやbinayで圧縮することはできません。なぜなら、出力は人間が読める必要があるからです。 – newman