当我在JSON对象中有一个Array属性时,如何修复'属性不应该返回数组'变暖

时间:2017-03-24 20:37:28

标签: c# asp.net

我有一个JSON数据对象,我在路由中使用A1 * 1 A1 A2 * 0 = 0 A3 * 1 A3 将其传递给我的控制器。

([FromBody] Request request)

但我收到错误public class Request { public string[] Tests { get; set; } }

来自https://msdn.microsoft.com/en-us/library/0fss9skc.aspx,它说61819Properties Should Not Return Arrays

我的问题是,当我将属性更改为Method时,ASP.net将不会从POST主体中的JSON数据创建JSON对象。那么为JSON对象修复此错误的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您是否可以选择接受错误的第二个建议,并将该属性改为收藏,如此?

public List<string> Tests { get; set; }

答案 1 :(得分:1)

简单的解决方案: 由于这不是错误,您可以简单地忽略它。

不那么简单的解决方案:Visual Studio吐出的所有CAxxxx警告都是Static Code Analysis警告,这意味着代码仍在编译,尽管通过一些代码质量规则Microsoft已定义(所有这些CA)您编码是有缺陷的。在许多情况下,返回数组的属性是代码气味,但正如您在这种情况下指出的那样,它是需要完成的方式。因此,您可以使用SuppressMessageAttribute禁用该警告。

[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
public string[] Tests { get; set; }