WebAPI 2.0 Post 不反序列化列表<T> 属性

WebAPI 2.0 Post Not Deserializing List<T> Property

我已经查看了我可以在这里找到的所有类似文章,并尝试了任何看起来可能都没有成功的文章(很明显,因为我现在正在问这个问题)。

我有一个 webAPI 2.0 控制器,它有一个 POST 动作,接受一个 Reservation 类型的对象。此对象包含一个名为 Items 的 属性,类型为 EquipmentItems。可以想象,这是一个List属性。我将预订对象发送过来(如果对任何人都重要,请使用 PostAsJsonAsync("api/Reservation", reservation).Result)。

当我进入 API 控制器时,Reservation 对象完全填充了除了 EquipmentItems属性.

中的所有内容

本着完全公开的精神,Reservation class 中的 Items 属性 实际上被定义为一个列表,其中 T 是 IItemData界面。 EquimpentItem 继承自 IItemData,所以不确定这是否会使事情复杂化。

本地控制器解串器不能处理 T 是接口的列表吗?

我所知道的是将列表定义为常规数组。这非常有效,但我还有其他要求引导我使用 List。

关于如何正确反序列化该列表 属性 有什么建议吗?

正确。如果您尝试反序列化为 List<ISomething>,那么它将不起作用。原因是反序列化操作不知道您希望实际创建哪个 ISomething(您不能初始化 ISomething,因为它不是具体的 class)。您将需要更改服务接口以公开列表的具体 class。 (即 List<Something>)。