2011-07-20 1 views
1

xmlシリアル化を使用して構成設定をシリアライズおよびデシリアライズするアプリケーションがあります。XMLをより新しいバージョンでデシリアライズするように変換する

私たちは、このアプリケーションの新しいバージョンをリリースする予定です。このアプリケーションのオブジェクトモデルにはいくつかの劇的な変更があります。ユーザーは新しいバージョンで設定を再構成する準備ができていません。以前のバージョンのxmlをより新しいバージョンの互換性のあるxmlに変換するソリューションが必要です。新しいバージョンにはいくつかのクラスが削除され、名前が変更され、プロパティが追加されます。

古いXMLを新しいバージョンでデシリアライズできるように変換する最も良い方法はありますか?

答えて

3

xmlを初めて読み込むときは、そのバージョンを特定する必要があります。最も簡単なのはおそらく古い設定を新しい形式に変換する関数を作ることです。新しい形式のローダーは常に使用でき、古いものと古いオブジェクトモデルを取り除くことができます。

変換は、xsltまたはc#コードを使用して行うことができます。

1
  • 古いバージョンと新しいバージョンを表す2つのオブジェクトグラフを保存します。 古いバージョンをデシリアライズし、新しいバージョンのオブジェクトグラフを作成します。次回にxmlが保存されるとき。新しいスキーマを使用して保存されます。次のリリースでは、この下位互換性のある機能を削除できます。

  • 古いフォーマットのパターンをxmlで検索し、Anders Abelの示唆するようにXSLTまたはコードを使用して新しいxmlに変換できます。しかし、これは積み込み時に自動的に行われるべきです。ファイルを保存する際には、新しい形式で保存され、以前のバージョンと互換性がないことをユーザーに警告する必要があります。

0

は、私は私が発明したものと同様、あなたはおそらく一緒に簡単なXMLとオブジェクトマッパーで、versioingとあなたのOMの拡張のためにMEFまたはSystemAddInsを使用すると思いhttp://xmlserialization.codeplex.com/

関連する問題