序列化类的设计

时间:2013-01-28 18:03:56

标签: c# .net serialization xml-serialization

我刚刚在serialize了解了如何deserializeobjects XMLC#。 现在我想将此功能添加到我的应用程序中,class有一个object。我应该创建一个包含classserialize方法的deserialize吗?或者,是否应该有Interface或其他什么?

这通常是怎么做的?

3 个答案:

答案 0 :(得分:0)

你最好保持你的对象和序列化机制单独DataContractSerializers在.Net中对此有好处。它们允许在属性上指定数据注释(如上面的注释中所述),并为您自动化实际的序列化。

答案 1 :(得分:0)

有一个接口(ISerializable),但您也有一些存在的泛型类,可以为您完成这项工作。在那个cas中,你必须为你想要序列化的属性放置正确的属性。

如果您需要有关此文档的文档,请查看here

.Net有一些内置的序列化器(BinaryFormatter和XmlSerializer

如果您使用界面,则必须编写自己的方法

答案 2 :(得分:0)

如果你的课程很简单,可以进行序列化,你可以这样做:

using (FileStream stream = File.Create(filename)){
 XmlSerializer serializer = new XmlSerializer(typeof(MyRootClassHere));
 serializer .Serialize(stream, yourRootInstance);
}

您可能需要查看XmlElement,XmlAttribute,XmlIgnore,XmlText属性以更好地控制输出:

 [XmlIgnore]
 public bool IgnoredBool{ get; set; }

 [XmlAttribute("NewXmlName")]
 public string RenamedProperty{ get; set; }

这应该让你在大部分时间里去。