ASP .NET WebApi 2 使用包含一些内容的类将 JSON 发送到 API

问题描述 投票:0回答:1
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

 列表时它是如何发生的,并且仍然将两个列表合并为一个 - 为什么?
我很确定它涉及序列化,但仍然无法猜测它是如何工作的。

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

c# asp.net json asp.net-web-api2
1个回答
0
投票
public IEnumerable<string> List { get { return _list; } set { _list = value; } }

您正在使用

_list2

 变量来设置属性 
List
。这就是为什么 
List
 的值设置为 
List2

© www.soinside.com 2019 - 2024. All rights reserved.