如何序列化包含XmlDocument类型属性的对象?:
[ProtoContract]
public class Foo
{
[ProtoMember(1)]
public XmlDocument Bar { get; set; }
}
答案 0 :(得分:4)
作为一个字符串;例如:
[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似乎已经闻到了一点冗余/内部平台效应。我这样,我不确定这是否是我想通过添加直接库支持鼓励; p
如果你的模型中有批次的xml文档,那么 - 好吧,首先 protobuf可能不会给你带来太大的好处,但其次:它是可能有可能在v2中勾选XmlDocument
的“代理人”;这可能会为每个文档增加2个字节的开销,但是如果你有xml可能不是你最大的问题。