c# - 使用命名元组作为输入参数的 API 调用

标签 c# asp.net-core namedtuple

我的一个 API 端点需要一个包含命名元组列表的对象。输入对象的示例如下:

public enum Countries { Afghanistan, Albania, Algeria, Andorra /*...*/ }

public class InputModel 
{
    public List<(Countries Country, bool Visited)> CountriesVisited { get; set; }
}

当我加载 Swagger 时,示例输入值使用命名元组,而是 item1item2 。例如:

"countriesVisited": [
    {
        "item1": "Afghanistan",
        "item2": "false"
    }
]

当我调用端点时,似乎我必须使用 item1item2以便它识别已指定的值。使用命名元组( countryvisited )会导致指定值被忽略。

是否可以更改此设置,以便当我调用端点时,我可以使用命名元组名称,而不是通用名称 item1item2

我知道我可以通过使用 Country 创建一个类来解决这个问题和Visited作为属性,但是如果可能的话,我想避免为这样的事情创建自定义类。

最佳答案

命名元组是一种语法糖,因此您所看到的内容是预期的。

更多信息请参见:Using a C# 7 tuple in an ASP.NET Core Web API Controller

关于c# - 使用命名元组作为输入参数的 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57136653/

相关文章:

c# - .NET zlib Stream 兼容 Actionscript ByteArray.uncompress

c# - 如何在 dotnet 核心中为 HttpClient 指定 HTTP/2 "prior knowledge"模式?

Python 解压命名元组的二维列表

python - 具有 namedtuple 的多处理对象 - pickle 错误

python - dir() 未列出的namedtuple 方法

c# - 如何将一个 3D 点与另一个 3D 点的距离调整给定距离

c# - 在 Eclipse Juno 中使用 Axis 1.1

c# - 反编译使用预编译工具生成的aspx页面

c# - 如何使用 AddMvcCore() 实现 "pure"ASP.NET Core Web API

c# - 如何将泛型函数存储在c#中的变量中?