0
我们有一个ASP.Net Web服务,它接收一个XML文件到PDA并将其映射到对象(一种标准的.Net Web方法)。在将此XML响应保存到磁盘之后,是否有一种简单的方法,让它读回与之前相同的对象结构?阅读从ASMX web服务返回磁盘对象的响应
PDA应用程序在从Web服务接收到数据后自动执行此操作,但无法找到一种方法让我提供流或类似的方法来重复“离线”过程。
我们有一个ASP.Net Web服务,它接收一个XML文件到PDA并将其映射到对象(一种标准的.Net Web方法)。在将此XML响应保存到磁盘之后,是否有一种简单的方法,让它读回与之前相同的对象结构?阅读从ASMX web服务返回磁盘对象的响应
PDA应用程序在从Web服务接收到数据后自动执行此操作,但无法找到一种方法让我提供流或类似的方法来重复“离线”过程。
序列化允许你这样做 - 它实际上是如何通过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
中扩展该抽象类的所有类类型。同时要小心,班内没有“循环依赖”。