我们有一个ASP.Net Web服务,它接收一个XML文件到PDA并将其映射到对象(标准的.Net Web方法)。将此XML响应保存到磁盘之后是否有一种简单的方法,将其读回到之前的相同对象结构中?
PDA应用程序在从Web服务接收到数据后自动执行此操作,但找不到允许我提供流等的方法来“脱机”重复该过程。
答案 0 :(得分:0)
序列化允许您执行此操作 - 实际上是通过Web服务发送对象的方式。
如果您很幸运,以下代码将序列化一个对象(称为“object_type”类型的“对象”。)
XmlSerializer serialiser = new XmlSerializer(typeof(object_type));
FileStream stream = new FileStream(@"C:\Temp\serialised_file.xml", FileMode.Create);
serialiser.Serialize(object, stream);
反序列化:
XmlSerializer serialiser = new XmlSerializer(typeof(object_type));
FileStream stream = new FileStream(@"C:\Temp\serialised_file.xml", FileMode.Open);
object_type object = serialiser.Deserialize(stream) as object_type;
我说“如果你很幸运”,因为90%的时间对我有用。如果类中的属性是抽象类,则可能需要声明在XmlSerializer
构造函数中扩展该抽象类的所有类类型。另外要注意,课堂上没有“循环依赖”。