4

私はList<>のオブジェクトを持っています。彼らのクラスには「色」プロパティ ( ) がありませんが、Stringシリアル化の直前に各リスト要素のこのプロパティの値を導出できます。

このプロパティを JSON オブジェクトに含めてクラスに追加し、全体をシリアル化する唯一の方法はありますか?

または、JSON オブジェクトに表示する必要があるプロパティを追加する方法/アプローチはありますか?

あらゆる種類の文字列操作方法で可能であることは知っていますが、それを行うのは正しくないと感じています。

私はDataContractJsonSerializerを使用しています。

4

2 に答える 2

3

クラスのインスタンスを別のクラスのインスタンスに透過的に置き換えるデータ コントラクト サロゲートを作成できます。この新しいクラスは何のようにも見えますが、あなたの場合は単に追加のColourプロパティを持つだけです。

ここでの利点は、リスト アイテムの元の型を維持できることです。サロゲートはシリアル化プロセス中に作成され、既存のコードはサロゲートにまったく触れる必要がありません。

于 2012-09-19T10:09:42.077 に答える
1

オブジェクトのリストから継承し、プリンシパルクラスで役に立たない文字列を追加する新しいクラスを作成できると思います。

JSONを作成するときは、派生クラスを使用するだけです。このクラスには、追加された文字列値が含まれ、残りのすべてのデータが元のオブジェクトから継承されます。

于 2012-09-19T10:03:17.300 に答える