在C#-Restsharp中序列化日期-时间字段时,模型始终为null
本文关键字:模型 null 字段 C#-Restsharp 序列化 日期 时间 | 更新日期: 2023-09-27 18:24:08
我在C#中遇到了一个简单序列化和反序列化的问题。
我正在使用RestSharp来调用一个webapi方法(REST方法)。
型号为:
public class MyModel
{
public DateTime date {get;set;}
}
控制器方法:
[RoutePrefix("Test")]
public class ValuesController : ApiController
{
[Route("~/Date")]
[HttpPost]
public IHttpActionResult Post([FromBody] MyModel model)
{
if (model == null)
return NotOk();
return Ok();
}
}
但是不幸的是,当使用xml
时,model
总是空的。
Restsharp客户端:
var restRequest = new RestRequest(@"http://localhost:50099/Date", Method.POST)
{
RequestFormat = DataFormat.Xml,
};
restRequest.AddBody(new MyModel(), "");
---->当数据格式为xml
时,模型为空。
Restsharp客户端:
var restRequest = new RestRequest(@"http://localhost:50099/Date", Method.POST)
{
RequestFormat = DataFormat.Json,
};
restRequest.AddBody(new MyModel(), "");
----->当数据格式为json时,模型不为null。date属性为默认值。
此处回答。
简而言之,在初始化Json serializer
时,我将DataContractSerializer
设置为true。此DataContractSerializer
预期日期为epoch
格式,因此出现问题。