我要解决的问题是我需要支持有效载荷格式,但是底层模型已经发生了巨大变化。
为此,我了解了自定义ModelBinder
,InputFormater
和一些不同的主题,我保留的是,由于Content-Type
将是application/json
, JsonInputFormatter
会处理它,不知道如何转换它,因此会将空模型传递给API方法。
然后,我决定实现一个自定义InputFormatter
,它将仅处理该Content-Type
的模型类型,并进行自定义反序列化。
我遇到的问题是,如果自定义反序列化中存在错误,我必须致电InputFormatterResult.FailureAsync()
,这不允许我将信息传递回呼叫者以告诉他出了什么问题。如果我使用默认的JsonInputformatter
,则可以在控制器中向调用者显示模型状态错误(ModelState.Values的Errors属性),但是找不到实现此目的的方法。
我的问题:如何使用自定义IInputFormatter
时遇到的错误?
注意:如果我只是没有使用正确的工具进行自定义反序列化,则任何指向正确方向的指针都将受到赞赏。