タイトルで C# について言及していますが、これは一般的なプログラミングの質問です。私は、次のことを行うための最良のアプローチを見つけようとしています。
次のフィールドを含む tableA があります
ID : 1
ProjectName : "Test"
City : "NY"
Size : 100
Location : "USA"
ここで、サード パーティ アプリケーション用にそのテーブルをシリアル化する必要がありますが、アプリケーションは一般的なデータ コントラクト (以下を参照) を使用し、さらにフィールド名を少し変更する必要があります。したがって、上記のテーブルは次のようにシリアル化されます。
<Object>
<type>Project</type>
<Fields>
<Key>NameofProject</Key><Value>Test</value>
<Key>ProjectCity</Key><Value>NY</value>
<Key>ProjectLocation</Key><Value>USA</value>
</Fields>
</Object>
ご覧のとおり、TableA のフィールドを新しいフィールド名/キーにマップする必要がありました。
ProjectName -> NameofProject
City -> ProjectCity
Location ->ProjectLocation
これは私が上記を達成する方法です: - 上記のマッピング関係を格納するマッピング テーブルを作成します。
InputField -> OutputKey
ProjectName -> NameofProject
City -> ProjectCity
Location ->ProjectLocation
I would then load the data from this table into a Set
I would then loop through each row of the input
- for each column in the row I would get the OutputKey based on the InputField as stored in my mapping Set, and build the xml
Set に少量の情報を保存してから、各フィールドのルックアップを実行することはそれほど悪いことではないと思います。しかし、私は経験豊富な C# ユーザーではないので、C# でこれを行うためのより良い方法があるかどうか疑問に思っています。どんな助けや指示も大歓迎です。
編集: XSLT の使用を提案したコメント - 良いアイデアですが、このタスクの他の複雑さのために、データ コントラクトに基づいてコードで xml を構築する方が良いでしょう。入力データ テーブルとマッピング テーブルの SQL 結合を介してマッピングを達成する方法はありますか?