XML ファイルを PDA に受信し、それをオブジェクトにマップする ASP.Net Web サービスがあります (標準の .Net Web メソッド)。この XML 応答をディスクに保存した後、以前と同じオブジェクト構造に読み戻す簡単な方法はありますか?
PDA アプリケーションは、Web サービスからデータを受信した後に自動的にこれを行いますが、ストリームなどを提供してプロセスを「オフライン」で繰り返す方法が見つかりませんでした。
XML ファイルを PDA に受信し、それをオブジェクトにマップする ASP.Net Web サービスがあります (標準の .Net Web メソッド)。この XML 応答をディスクに保存した後、以前と同じオブジェクト構造に読み戻す簡単な方法はありますか?
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
コンストラクターでその抽象クラスを拡張するすべてのクラス型を宣言する必要がある場合があります。また、クラス内に「循環依存」がないように注意してください。