1
私は、下の構造/階層にマップするいくつかのクラスを持っています。jsonの逆シリアル化GETが前に呼び出されます。Set
public class CustomModel
{
public string Message { get; set; }
public int Code { get; set; }
public CustomData Info { get; set; }
}
public class CustomData
{
public CustomData (CustomObject customData)
{
CustomObjectProp = customData.customMessage
}
}
public class CustomObject
{
public string CustomObjectProp {get; set;}
}
のCustomModelをシリアル化するとき、私はデシリアライズするときCustomData
のコンストラクタがcustomDataがnullであることで呼び出されますよう
{
"Message ": "A message is set.",
"Code": 825,
"Info": "Some Info is set"
}
以下のようなJSON文字列は、しかし、私はSystem.NullReferenceException
エラーを取得し得ます。
セッターの前に「ゲッタ」を実行しないようにするにはどうすればよいですか?
[Json.net](https://www.nuget.org/packages/newtonsoft.json)を使用してjsonを逆シリアル化していますか? –
@BrandonMinnick - はい、json.netを使用しています – Noah
デフォルトコンストラクタを追加してデフォルトデータを設定することをお勧めします。それ以外の場合は、パラメータ化されたコンストラクタを処理するために顧客のコンバーターを書くことができます:http://stackoverflow.com/questions/8254503/how-to-pass-arguments-to-a-non-default-constructor/8312048#8312048 – gideon