servicestack,C#,Json,Error Handling,Deserialization,servicestack" /> servicestack,C#,Json,Error Handling,Deserialization,servicestack" />

C# 我们如何从ServiceStack';发生错误时,是否使用JSON序列化程序?

C# 我们如何从ServiceStack';发生错误时,是否使用JSON序列化程序?,c#,json,error-handling,deserialization,servicestack,C#,Json,Error Handling,Deserialization,servicestack,当配置为引发以下异常时,我们如何获得有关JSON反序列化异常的更多信息: JsConfig.ThrowOnDeserializationError = true; 默认情况下,JSON序列化程序将记录并忽略非关键异常,或者可以配置为使用上述配置抛出。当配置为遇到反序列化错误时抛出时,具有: JsConfig.ThrowOnDeserializationError = true; 它捕获能够反序列化的信息,并将其存储在抛出的序列化异常中的ex.Data字典中 try { string

当配置为引发以下异常时,我们如何获得有关JSON反序列化异常的更多信息:

JsConfig.ThrowOnDeserializationError = true;
默认情况下,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)));
}