从ASMX Web服务读取响应从磁盘读回对象

问题描述 投票:0回答:1

我们有一个ASP.Net Web服务,它接收一个XML文件到PDA并将其映射到对象(标准的.Net Web方法)。将此XML响应保存到磁盘之后是否有一种简单的方法,将其读回到之前的相同对象结构中?

PDA应用程序在从Web服务接收数据后自动执行此操作,但找不到允许我提供流或类似程序以重复“脱机”进程的方法。

web-services asmx handhelddevice
1个回答
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构造函数中扩展该抽象类的所有类类型。另外要注意,类中没有“循环依赖”。

© www.soinside.com 2019 - 2024. All rights reserved.