在大多数情况下,我的JSON反序列化似乎工作正常,除了我添加的最后一个属性。 我有以下JSON字符串。 如果我将类属性类型保存为属性httpVerb的字符串,则反序列化工作正常。 但是如果我将类属性类型保存为属性httpVerb的System.Net.HttpMethod,则反序列化失败。 我真的很讨厌创建另一个枚举,因为HTTP动词已经在HttpMethod类中定义。
有人可以帮忙吗?
{
"httpTest": {
"ignoreCertificateErrors": false,
"successHTTPStatusCodes": [ 200 ],
"httpVerb": "GET"
}
}
public class HttpTest
{
public bool ignoreCertificateErrors { get; set; }
public List<HttpStatusCode> successHTTPStatusCodes { get; set; }
public HttpMethod httpVerb { get; set; }
}
public class RootObject
{
public HttpTest httpTest { get; set; }
}
答案 0 :(得分:2)
您必须将json动词反序列化为字符串。也就是说,您可以返回相应的HttpMethod实例,以通过添加其他属性来保留强类型。
public class HttpTest
{
public bool ignoreCertificateErrors { get; set; }
public List<HttpStatusCode> successHTTPStatusCodes { get; set; }
public string httpVerb { get; set; }
public HttpMethod HttpMethodInstance {
get { return new HttpMethod(httpVerb); }
}
}
如果你的动词是一个有效的动词,你可以用它来实例化一个新的HttpMethod实例