C# 当我的JSON对象中有一个数组属性时,如何修复“属性不应返回数组”暖化

C# 当我的JSON对象中有一个数组属性时,如何修复“属性不应返回数组”暖化,c#,asp.net,C#,Asp.net,我有一个JSON数据对象,并在路由中使用[FromBody]请求将其传递给我的控制器 public class Request { public string[] Tests { get; set; } } 但是我得到一个错误61819属性不应该返回数组 从中,它表示将属性设置为方法或更改属性以返回集合 我的问题是,当我将属性更改为方法时,ASP.net不会从POST正文中的JSON数据创建JSON对象。那么,对于JSON对象,修复此错误的最佳方法是什么呢?您是否可以选择接受错误的第二

我有一个JSON数据对象,并在路由中使用[FromBody]请求将其传递给我的控制器

public class Request
{
    public string[] Tests { get; set; }
}
但是我得到一个错误61819属性不应该返回数组

从中,它表示将属性设置为方法或更改属性以返回集合


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

您是否可以选择接受错误的第二个建议,并将属性改为集合,如下所示

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

您是否可以选择接受错误的第二个建议,并将属性改为集合,如下所示

public List<string> Tests { get; set; }
简单的解决方案是: 由于这不是一个错误,您可以忽略它

不那么简单的解决方案:VisualStudio发出的所有CAxxxx警告都是静态代码分析警告,这意味着代码仍然可以编译,尽管根据一些代码质量规则,Microsoft已经定义了所有这些CA,您的代码都有缺陷。在许多情况下,返回数组的属性是一种代码味道,但正如您在这种情况下指出的那样,这是需要执行的方式。因此,您可以使用禁用该警告

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

不那么简单的解决方案:VisualStudio发出的所有CAxxxx警告都是静态代码分析警告,这意味着代码仍然可以编译,尽管根据一些代码质量规则,Microsoft已经定义了所有这些CA,您的代码都有缺陷。在许多情况下,返回数组的属性是一种代码味道,但正如您在这种情况下指出的那样,这是需要执行的方式。因此,您可以使用禁用该警告


该建议实际上是列表测试{get;}=new List;,我不知道它是否能与JSON序列化一起工作,因为这取决于反序列化程序。我不明白为什么您建议添加实例化并删除集合?我试图对原始海报的代码进行最低限度的更改。因为这就是建议,请参见该页面上的最后一个示例。因为。我不认为从返回数组到列表的改变会让代码的味道消失。问题是返回一个可变的结构,从而使类容易丢失其不变量;,我不知道它是否能与JSON序列化一起工作,因为这取决于反序列化程序。我不明白为什么您建议添加实例化并删除集合?我试图对原始海报的代码进行最低限度的更改。因为这就是建议,请参见该页面上的最后一个示例。因为。我不认为从返回数组到列表的改变会让代码的味道消失。问题是返回一个可变的结构,从而使类容易丢失其不变量。