我的一个 API 端点需要一个包含命名元组列表的对象。输入对象的示例如下:
public enum Countries { Afghanistan, Albania, Algeria, Andorra /*...*/ }
public class InputModel
{
public List<(Countries Country, bool Visited)> CountriesVisited { get; set; }
}
当我加载 Swagger 时,示例输入值不使用命名元组,而是 item1
和item2
。例如:
"countriesVisited": [
{
"item1": "Afghanistan",
"item2": "false"
}
]
当我调用端点时,似乎我必须使用 item1
和item2
以便它识别已指定的值。使用命名元组( country
和 visited
)会导致指定值被忽略。
是否可以更改此设置,以便当我调用端点时,我可以使用命名元组名称,而不是通用名称 item1
和item2
?
我知道我可以通过使用 Country
创建一个类来解决这个问题和Visited
作为属性,但是如果可能的话,我想避免为这样的事情创建自定义类。
最佳答案
命名元组是一种语法糖,因此您所看到的内容是预期的。
更多信息请参见:Using a C# 7 tuple in an ASP.NET Core Web API Controller
关于c# - 使用命名元组作为输入参数的 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57136653/