2011-07-01 8 views

答えて

3

をシリアル化する方法。例えば:

[ProtoContract] 
public class Foo 
{ 
    public XmlDocument Bar { get; set; } 
    [ProtoMember(1)] 
    private string BarSerialized { 
     get { return Bar == null ? null : Bar.OuterXml; } 
     set { 
      if (value == null) { Bar = null; } 
      else { 
       var tmp = new XmlDocument(); 
       tmp.LoadXml(value); 
       Bar = tmp; 
      } 
     } 
    } 
} 

私はこの自動的に処理することができると思いますが、...いるProtobuf内部の梱包XMLはすでに冗長性/インナープラットフォーム効果のビットを嗅ぐようです。よく、まず - あなたは、モデル内のたくさんのXML-文書のを持っている場合は、その後、P

;私はそのように、私はそれは私が直接ライブラリのサポートを追加することにより、を奨励たいものであることはよく分かりません protobufはおそらくあなたに多くの利益をもたらさないでしょうが、第二に、v2のXmlDocumentの "サロゲート"をフックすることはおそらく可能です。これは恐らくドキュメントあたり2バイトのオーバーヘッドを追加しますが、xmlがある場合はおそらく最大の問題ではありません。

関連する問題