序列化类的设计

本文关键字:序列化 | 更新日期: 2023-09-27 17:56:34

我刚刚学会了如何serializedeserialize objects C# XML。现在我想将此功能添加到我的应用程序中,我有一个object class. 我是否应该创建一个包含serializedeserialize方法的class?或者,应该有Interface什么的?

这通常是怎么做到的?

序列化类的设计

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

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

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

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

)。

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

如果你的类足够简单,可以序列化,你可以这样做:

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; }

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