【发布时间】:2021-07-13 22:58:45
【问题描述】:
想知道是否可能拥有私有构造函数并使用新的 System.Text.Json 序列化程序。
public class MyModel
{
public string Name { get; set; }
public string Data { get; set; }
private MyModel()
{
// use me for when deserializing
}
public MyModel(string name, string data)
{
Name = name;
Data = data;
}
}
简单的往返。
var model = new MyModel("doo", "doo");
var json = JsonSerializer.Serialize(model, new JsonSerializerOptions
{
WriteIndented = true
});
// no to go because of there is no parameterless constructor defined for this object.
var rehydrated = JsonSerializer.Deserialize<MyModel>(json);
【问题讨论】:
-
.net core 3.1 和 .net core 5.0 之间发生了重大变化。请参阅以下内容 - docs.microsoft.com/en-us/dotnet/core/compatibility/…。如果无法添加公共构造函数,它还建议实现 JsonConverter
。
标签: c# .net-core system.text.json