我将一个有效的 JSON 对象传递给我的 .net core 3 web api 应用程序上的控制器。这样做,我得到错误:
System.NotSupportedException:不支持接口类型的反序列化。键入“OrderTranslationContracts.OrderContracts+IImportOrderLineModel”
所以我查看了我的代码,我有一个接口的以下具体实现。这是我认为引发错误的行:
public List<OrderContracts.IImportOrderLineModel> Lines { get; set; }
这是我传递给控制器的 JSON 部分:
"lines": [
{
"orderNumber": "LV21131327",
"lineNumber": 1,
"itemId": "3083US",
"customerItemId": "3083US",
"quantity": 3,
"price": 0.00,
"quantityBackOrdered": null,
"comments": "",
"pickLocation": "",
"orderFilled": "O",
"hostUom": null,
"type": null
}
所以我知道 JSON 是有效的。这是控制器的签名:
[HttpPost]
public async Task<List<ImportOrderModel>> Post([FromBody] List<ImportOrderModel> orders)
{
var response = await _validateOrder.ValidateAllOrdersAsync(orders, null);
return response;
}
我什至没有闯入这段代码,因为我假设 JSON 反序列化器在尝试转换它时抛出了错误。那么我该如何克服这个错误呢?我受接口的具体实现的约束,所以如果可能的话,我无法更改我需要使用的接口。如果这不可能,是否有任何“解决方法”?