2012-01-23 6 views
0

同じタイプの2つのシリアル化されたオブジェクトの間にデルタを保存する監査ログを作成しています。同じ値を持つノードを簡単に切り捨て、変更されたノードをそのまま残す方法はありますか?2つのXmlSerializer出力からデルタを取得

StreamWriter oldData = new StreamWriter(); 
StreamWriter newData = new StreamWriter(); 
XmlSerializer xmlOld = new XmlSerializer(typeof(MyClass)); 
XmlSerializer xmlNew = new XmlSerializer(typeof(MyClass)); 

xmlOld.Serialize(oldData, obj); 
xmlNew.Serialize(newData, obj); 

ありがとうございます。

答えて

0

マイクロソフトでは、使いやすいツール「XMLDiffPatch」を提供しており、探している出力を提供します。ここにそれのための便利な小さなガイドがあります。

http://msdn.microsoft.com/en-us/library/aa302294.aspx

基本的にあなたがあなたの2つの項目からドロップアウトし、そこから行くべきかを識別するためのツールを使用します。

+0

これは悪くありませんが、私は外部ツールを避けたいと思います。 – MarkP

+0

はい、もちろんですが、代わりにdiffを自分でやっています。これは時間がかかり、エッジケースで満ちています。 –

関連する問題