2011-10-02 14 views
2

このクラスC#のカスタムJSONシリアライズ

class X{ 
    public string a{get;set} 
    public string b{get;set} 
} 

{..., inst:{a:"value", b:"value"}, ...} 

のようにシリアライズされ、私はこのようにシリアル化する私のクラスのオブジェクトが必要です:xが+である

{..., inst: x, ...} 

b 私のクラスからJSONシリアル化プロセスをカスタマイズするにはどうすればよいですか?

答えて

2

Checkout Newton-softs JSONシリアライザ。そのかなり甘い。

を使用すると、aとbが民間作ってみましたがあり、その後、

public string x { get { return a + b; } } 
+0

sum-propertyについての素晴らしいアイデアですが、私はこのオブジェクトをデータベースからまず逆シリアル化して、これらのフィールドを公開する必要があります。だから私はニュートンライブラリを使用しますが、残念ながらボックスからの解決策はありません。 – FLCL

+0

永続性モデルとビューモデル(またはJsonにシリアライズしているもの)に専用のクラスを使用することを検討してください。私はこれがこれらのような問題を避ける最も簡単な方法だと思っています。モデル間のマッピングが複雑すぎる場合は、automapperを使用してモデルを管理することを検討してください。 –

1

のようなものは、民間のgetシリアル化からそれを削除しますが、まだそれができるようになります持つこの

class X{ 
    public string a{private get;set;} 
    public string b{private get;set;} 
    public string x {get{ return a + b; }} 
} 

のようにそれを試してみますセット。もう一つの選択肢は、このようにすることです。

class X{ 
    public string a{set;} 
    public string b{set;} 
    public string x {get{ return a + b; }} 
} 
関連する問題