C# を使用して XPDL 標準からインポートおよびエクスポートしています。
XPDL 2.1を使用してクラスの階層を記述し、XmlSerializer
. XPDL 2.2を実装する必要があります。
クラスの構造が変更されました。追加のパラメーターもあります。ルート クラスの子であるリストがありましArtifacts
たが、新しいバージョンはDataObject
すべてのアーティファクトから失われました。DataObjects は、追加の List から に移動しましたWorkflowProcess
。
XPDL 2.1とXPDL 2.2をサポートする必要があります。両方を実装する最良の方法は何ですか?
私は3つの方法を見ることができます:
- 既存の階層をコピーして、必要な修正を加えて貼り付けます (ひどい!)
- 基本クラスを作成し、2 つの子クラスを作成します。1 つは 2.1 用、もう 1 つは 2.2 用です (ただし、維持するには複雑すぎませんか?)
enum
変数を使用して条件付きシリアル化を実装します。クラスには 2.1 と 2.2 のスーパーセットが含まれます (このオプションは複雑すぎるようです)
より良いアプローチがあれば教えてください。