我们有一个 ASP.Net Web 服务,它接收一个 XML 文件到 PDA 并将其映射到对象(一种标准的 .Net Web 方法)。在将此 XML 响应保存到磁盘后,是否有一种简单的方法,将其读回与之前相同的对象结构?
PDA 应用程序在从 Web 服务接收到数据后自动执行此操作,但找不到可以让我提供流等以“离线”重复该过程的方法。
我们有一个 ASP.Net Web 服务,它接收一个 XML 文件到 PDA 并将其映射到对象(一种标准的 .Net Web 方法)。在将此 XML 响应保存到磁盘后,是否有一种简单的方法,将其读回与之前相同的对象结构?
PDA 应用程序在从 Web 服务接收到数据后自动执行此操作,但找不到可以让我提供流等以“离线”重复该过程的方法。
序列化允许您执行此操作 - 它实际上是通过 Web 服务发送对象的方式。
如果幸运的话,下面的代码将序列化一个对象(称为“object_type”类型的“object”。)
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
构造函数中声明扩展该抽象类的所有类类型。还要注意类中没有“循环依赖”。