我想读入id,但不想在读入后设置它。_processing变量是在阅读文件和反序列化时设置的,因此可以设置它。有没有内置的更优雅的方法来处理这个问题?
private string _id;
[JsonProperty(PropertyName = "id")]
public string id
{
get { return _id; }
set
{
if (_processing) // Only allow when reading the file
{
_id = value;
}
}
}
3条答案
按热度按时间olqngx591#
如果只能使用init属性(从C#9.0开始)(https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/init):
如果没有...
如果在json中找不到默认属性值,则提供设置默认属性值的相关但有用的链接:Default value for missing properties with JSON.net
2w3kk1z52#
在C# 7.3和更早版本中,可以像这样使用空合并运算符:
在C# 8.0和更高版本中,您可以执行以下操作:
**??=**如果左操作数的计算结果为非空,则运算符不计算其右操作数。
5t7ly7z53#
我认为使用私有setter就可以了。只要不要再调用它。如果属性名称相同,也可以省略属性名称。
或