ServiceStack の JSON Serializerが例外をスローするように構成されている場合、JSON De-serialization 例外に関する詳細情報を取得するにはどうすればよいですか。
JsConfig.ThrowOnDeserializationError = true;
デフォルトでは、JSON シリアライザーは重要でない例外をログに記録して無視するか、上記の構成でスローするように構成できます。
ServiceStack の JSON Serializerが例外をスローするように構成されている場合、JSON De-serialization 例外に関する詳細情報を取得するにはどうすればよいですか。
JsConfig.ThrowOnDeserializationError = true;
デフォルトでは、JSON シリアライザーは重要でない例外をログに記録して無視するか、上記の構成でスローするように構成できます。
ServiceStack の JSON シリアライザーが、デシリアライゼーション エラーが発生したときにスローするように構成されている場合、次のようになります。
JsConfig.ThrowOnDeserializationError = true;
逆シリアル化できた情報をキャプチャex.Data
し、スローされたシリアル化例外のディクショナリに格納します。
try {
string json = @"{""idBad"":""abc"", ""idGood"":""2"" }";
JsonSerializer.DeserializeFromString(json, typeof(TestDto));
Assert.Fail("Exception should have been thrown.");
} catch (SerializationException ex) {
Assert.That(ex.Data, Is.Not.Null);
Assert.That(ex.Data["propertyName"], Is.EqualTo("idBad"));
Assert.That(ex.Data["propertyValueString"], Is.EqualTo("abc"));
Assert.That(ex.Data["propertyType"], Is.EqualTo(typeof(int)));
}