我正在使用ASP.Net核心1.0.0构建一个REST api,我目前正试图找到一种方法来序列化和反序列化Incoming request body和out going response。
例如,我有以下
[HttpPost]
public async Task<IActionResult> Post([FromBody]ScheduleEvent scheduleEvent)
{
.
.
.
return Ok(scheduleEvent);
}
问题是,ScheduleEvent是一个数据库模型,因此不应该从客户端发送或接收所有属性。
我能找到的唯一解决方案是创建DTO类并将DTO对象转换为模型对象,或者将jsonattribute放在对象上。第一个似乎是一个不必要的解决方法,第二个强制你使你的模型依赖于json.net,除了它还使序列化和反序列化完全相同的事实。基本上它们看起来都是糟糕的解决方案 - 主要是因为json.net允许使用模式使传入/传出json无效,如果有人使用它,他可以通过为每个类型或每个Controller / Action创建输入和输出模式来轻松创建这样的功能。
然而,JsonConverter似乎不是正确的方法,创建我自己的json输出和输入格式化器似乎需要做很多工作,因为它可能有更好的解决方案。
基本上,问题是,解决这个问题的常用方法是什么,你知道更好的解决方案吗?