序列化类的设计
本文关键字:序列化 | 更新日期: 2023-09-27 17:56:34
我刚刚学会了如何serialize
和deserialize
objects
C#
XML
。现在我想将此功能添加到我的应用程序中,我有一个object
class
. 我是否应该创建一个包含serialize
和deserialize
方法的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; }
这应该让你大部分时间都去。