プロパティ セッターを使用して C# クラスの入力を検証し、無効な入力に対して例外をスローします。また、Json.NET を使用して、json をオブジェクトに逆シリアル化します。問題は、セッターによってスローされる無効な json 値の例外をキャッチする場所がわからないことです。例外はJsonConvert.DeserializeObject
メソッドからスローされません。
public class A{
private string a;
public string number{
get {return a;}
set {
if (!Regex.IsMatch(value, "^\\d+$"))
throw new Exception();
a = value;
}
}
}
public class Main
{
public static void main()
{
// The Exception cannot be caught here.
A a = JsonConvert.DeserializeObject<A>("{number:'some thing'}");
}
}