2010-03-22 113 views
0

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

PDA应用程序在从Web服务接收到数据后自动执行此操作,但无法找到一种方法让我提供流或类似的方法来重复“离线”过程。

回答

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中扩展该抽象类的所有类类型。同时要小心,班内没有“循环依赖”。