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

时间:2010-03-22 18:36:27

标签: web-services asmx handhelddevice

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

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

1 个答案:

答案 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构造函数中扩展该抽象类的所有类类型。另外要注意,课堂上没有“循环依赖”。