WebAPI 2.0 Post未反序列化List 属性
我已经回顾了我在这里可以找到的所有类似的文章,并尝试了任何看起来可能没有成功的事情(因为我现在正在问这个问题)。
我有一个带有POST操作的webAPI 2.0控制器,它接受一个类型为Reservation
的对象。 除其他外,该对象包含名为Items
的属性,该属性属于EquipmentItems
类型。 可以想象,这是一个List属性。 我发送预订对象(使用PostAsJsonAsync("api/Reservation", reservation).Result
如果它对任何人PostAsJsonAsync("api/Reservation", reservation).Result
重要)。
当我进入API控制器时, Reservation
对象完全填充了除EquipmentItems
属性之外的所有内容。
本着完全公开的精神, Reservation
类中的Items
属性实际上被定义为List,其中T是IItemData
接口。 EquimpentItem
inheritance自IItemData
,因此不确定这是否会使问题复杂化。
本机控制器反序列化器可以不处理T是接口的List吗?
我所知道的是将List定义为常规数组。 这非常有效,但我有其他要求导致我使用List。
有关如何正确反序列化List属性的任何建议?
正确。 如果您尝试反序列化为List
,那么它将无法正常工作。 原因是反序列化操作不知道您希望实际创建哪个ISomething(您不能初始化ISomething,因为它不是具体的类)。 您需要更改服务接口以显示列表的具体类。 (即List
)。
- 返回HttpResponseMessage并配置Application Insights时,WebAPI响应永远不会完成
- 将自定义查询支持的导航属性添加到ODataConventionModelBuilder
- Web Api 2.2 – 类库项目中的代码优先迁移
- 中间件中的HttpContext .NET核心保存实例
- 来自ASP.Net Web API 2的统一,一致的错误响应
- 我应该在哪里插入我的自定义DefaultContractResolver JSON.NET?
- WebAPI 2.1中的Ninject错误 – 确保控制器具有无参数的公共构造函数
- 带接口的JsonConverter
- ASP.NET Web API 2和部分更新