使ReSharper / Roslyn / Compiler识别JsonRequiredAttribute

问题描述 投票:0回答:1

有时,当您创建DTO以对json进行反序列化时,可以用[JsonRequiredAttribute]装饰属性:

class Car
{
    [JsonRequired]
    public string Make { get; set; }
}

但是,在使用ReSharper或C#8时,您会看到以下警告:

Car.cs(30,19):[CS8618]不可初始化的属性'Make'未初始化。考虑将属性声明为可为空。

[在某些项目中,我有很多这样的警告,我想知道是否有一种方法仅针对假阳性抑制它们?我可以完全禁用它们,但我不想这么做。

c# json.net resharper roslyn-code-analysis c#-8.0
1个回答
0
投票

如果使用的是C#8,则可以使用Null Forgiving Operator。例如,

public string Make { get; set; } = null!;

来自文档

后缀!运算符对运行时间没有影响-评估为基础表达式的结果。它的唯一作用是改变表达式的空状态,并限制对其使用的警告。

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