serialize
我刚刚学会了如何deserialize
objects
在XML
. C#
现在我想将此功能添加到我的应用程序中,我有一个class
用于object
. 我应该创建一个class
包含serialize
anddeserialize
方法的吗?或者,应该有一个Interface
或什么?
这通常是如何完成的?
serialize
我刚刚学会了如何deserialize
objects
在XML
. C#
现在我想将此功能添加到我的应用程序中,我有一个class
用于object
. 我应该创建一个class
包含serialize
anddeserialize
方法的吗?或者,应该有一个Interface
或什么?
这通常是如何完成的?
如果您的类足够简单,可以进行序列化,您可以这样做:
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; }
这应该让你大部分时间都去。
你最好将你的对象和序列化机制分开DataContractSerializers在.Net中对此有好处。它们允许在属性上指定数据注释(如上面的评论中所述)并为您自动执行实际序列化。
有一个接口(ISerializable),但您也有通用类,它们可以为您完成这项工作。在那种情况下,您必须为要序列化的属性放置正确的属性。
如果您想要有关此的文档,请查看此处。
.Net 有一些内置的序列化器(BinaryFormatter 和 XmlSerializer
如果您使用接口,则必须编写自己的方法