1

次のリクエスト オブジェクトがあるとします。

public class UserRequest
{
    public DateTime? Birthday { get; set; }
    public bool DeservesGift { get; set; }
}

そして、次のjsonを指定されたURLに投稿してみてください:

{ 
    "Birthday": "A late summer night",
    "DeservesGift": "No way!"
}

何らかの例外が発生することを期待しています。代わりに、サービスはBirthday とDeservesGiftのUserRequestインスタンスを受け取ります。nullfalse

どうしてこれなの?
誕生日を null に設定しようとした場合は 200 ok になるはずですが、それ以外に設定しようとすると 400 Bad リクエストになるはずです。誕生日を null に設定して 200 と応答しますが、それは正しくありません...

4

1 に答える 1

1

静的オブジェクトには、デフォルトで false に設定されるJsConfigプロパティがあります。ThrowOnDeserializationErrortrue に設定すると、SerializationException上記の例で a が発生します。

JsConfig.cs、343行目->:

    /// <summary>
    /// Gets or sets a value indicating if the framework should throw serialization exceptions
    /// or continue regardless of deserialization errors. If <see langword="true"/>  the framework
    /// will throw; otherwise, it will parse as many fields as possible. The default is <see langword="false"/>.
    /// </summary>
    private static bool? sThrowOnDeserializationError;
    public static bool ThrowOnDeserializationError { }
于 2013-05-23T11:40:51.630 に答える