[英]Deserialization and throw exception for required property when it is null
我可能遺漏了什么。 我想測試 API 調用響應返回 null 屬性時的行為,我想在發生這種情況時拋出異常。
我有一個Form
object 如下
public class Form
{
[Required]
public string Html { get; set; }
public string Json { get; set; }
public string Name { get; set; }
}
我已經初始化了一個 object
var myData = new
{
Json = "foo",
};
string jsonData = JsonConvert.SerializeObject(myData);
var response = JsonConvert.DeserializeObject<Form>(File.ReadAllText(jsonPath));
我期待有一個例外,因為Html
屬性是required
的並且不能為nullable
,但實際上得到 object 作為
{
Html = null,
Json = foo,
Name = null
}
我嘗試按如下方式使用JsonSerializerSettings
但這實際上僅在存在額外的不需要的屬性時拋出異常,而不是在缺少屬性時拋出異常。
JsonSerializerSettings config = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Error, NullValueHandling = NullValueHandling.Include};
var res = JsonConvert.DeserializeObject<Form>(json,config);
您需要[JsonProperty(Required = Required.Always)]
。
public class Form
{
[JsonProperty(Required = Required.Always)]
public string Html { get; set; }
public string Json { get; set; }
public string Name { get; set; }
}
而[Required]
屬性用於Data Annotation 。
參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.