2010-03-22 114 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中擴展該抽象類的所有類類型。同時要小心,班內沒有「循環依賴」。