gpt4 book ai didi

c# - ASP .NET WebApi 2 发送 Json 到 api 类有一些

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:55 25 4
gpt4 key购买 nike

API 方法接收此类的对象:

    public class TestModel
{
private IEnumerable<string> _list;
private IEnumerable<string> _list2;

public IEnumerable<string> List
{
get { return _list; }
set { _list2 = value; }
}

public IEnumerable<string> List2
{
get { return _list2; }
set { _list2 = value; }
}

}

我知道它可能看起来很奇怪,它是 ofc。但是在 C# 代码中,如果您要为任何 List 或 List2 设置一个新值,您将始终将 List2 设置为一个新值。但是,如果您将其与 API 一起使用:

API 方法:

 [HttpPost]
public IHttpActionResult Test(TestModel test)
{
return Ok(test);
}

请求 JSON:

{
"List":["asdas", "asdasd"],
"List2":["qwe", "qwe"],
}

你会收到这样的回复:

{
"list": null,
"list2": [
"asdas",
"asdasd",
"qwe",
"qwe"
]
}

我知道这不正常,但我偶然发现了这一点,我很好奇它是如何发生的,因为我使用只读 IEnumerable 列表,但它仍然将两个列表合并为一个 - 为什么?我很确定它涉及序列化,但仍然无法猜测它是如何工作的。

非常感谢任何能解释这一点并满足我的好奇心的人。

最佳答案

public IEnumerable<string> List
{
get { return _list; }
set { _list = value; }
}

您正在使用 _list2 变量来设置属性 List。这就是 List 的值设置为 List2 的原因。

关于c# - ASP .NET WebApi 2 发送 Json 到 api 类有一些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45238319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com