C# Newtonsoft Jsonconverter在派生列表时未序列化属性<&燃气轮机;
考虑下面的代码。 当我试图通过调用“SaveToFile”方法来序列化时,属性“Name”不会被序列化 有什么想法吗C# Newtonsoft Jsonconverter在派生列表时未序列化属性<&燃气轮机;,c#,json,inheritance,C#,Json,Inheritance,考虑下面的代码。 当我试图通过调用“SaveToFile”方法来序列化时,属性“Name”不会被序列化 有什么想法吗 public class Subs { public string Something { get; set; } = "smew"; } public class Plep : List<Subs> { public string Name { get; set; } = "smew"; public void SaveToFile(s
public class Subs
{
public string Something { get; set; } = "smew";
}
public class Plep : List<Subs>
{
public string Name { get; set; } = "smew";
public void SaveToFile(string file)
{
using (StreamWriter wrt = new StreamWriter(file))
{
wrt.WriteLine(JsonConvert.SerializeObject(this, Formatting.Indented, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
//TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
}));
}
}
}
公共类潜艇
{
公共字符串Something{get;set;}=“smew”;
}
公共类Plep:列表
{
公共字符串名称{get;set;}=“smew”;
公共void保存文件(字符串文件)
{
使用(StreamWriter wrt=新StreamWriter(文件))
{
wrt.WriteLine(JsonConvert.SerializeObject)(此,格式化.Indented,新JsonSerializerSettings
{
TypeNameHandling=TypeNameHandling.All,
//TypeNameAssemblyFormatHandling=TypeNameAssemblyFormatHandling.Simple,
}));
}
}
}
不要像前面提到的那样从列表中派生类
将您的班级改为:
public class Plep
{
public string Name { get; set; } = "smew";
public List<Subs> Subs {get;set;}
public void SaveToFile(string file)
{
using (StreamWriter wrt = new StreamWriter(file))
{
wrt.WriteLine(JsonConvert.SerializeObject(this, Formatting.Indented, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
//TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
}));
}
}
公共类Plep
{
公共字符串名称{get;set;}=“smew”;
公共列表子项{get;set;}
公共void保存文件(字符串文件)
{
使用(StreamWriter wrt=新StreamWriter(文件))
{
wrt.WriteLine(JsonConvert.SerializeObject)(此,格式化.Indented,新JsonSerializerSettings
{
TypeNameHandling=TypeNameHandling.All,
//TypeNameAssemblyFormatHandling=TypeNameAssemblyFormatHandling.Simple,
}));
}
}
不要像前面提到的那样从列表中派生类
将您的班级改为:
public class Plep
{
public string Name { get; set; } = "smew";
public List<Subs> Subs {get;set;}
public void SaveToFile(string file)
{
using (StreamWriter wrt = new StreamWriter(file))
{
wrt.WriteLine(JsonConvert.SerializeObject(this, Formatting.Indented, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
//TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple,
}));
}
}
公共类Plep
{
公共字符串名称{get;set;}=“smew”;
公共列表子项{get;set;}
公共void保存文件(字符串文件)
{
使用(StreamWriter wrt=新StreamWriter(文件))
{
wrt.WriteLine(JsonConvert.SerializeObject)(此,格式化.Indented,新JsonSerializerSettings
{
TypeNameHandling=TypeNameHandling.All,
//TypeNameAssemblyFormatHandling=TypeNameAssemblyFormatHandling.Simple,
}));
}
}
您希望如何将其序列化为JSON?作为数组或具有属性的对象?这些是不兼容的,而且Newtonsoft似乎回到了列表/数组。为什么您甚至从列表派生?通常您不需要它。只需使用列表,例如,通过公开列表
。看起来像和的副本。您如何体验将其序列化为JSON?作为数组或具有属性的对象?这些是不兼容的,而且Newtonsoft似乎回到了列表/数组。为什么您甚至从列表派生?通常您不需要它。只需使用列表,例如,通过公开列表
。看起来像和的副本。现在,这是我将要使用的解决方案使用。虽然这不完全是我想要的,但我现在必须做一些其他的事情。我希望在不久的将来进一步阐述。目前,这是我将使用的解决方案。虽然这不完全是我想要的,但我现在必须做些其他的事情。我希望在不久的将来进一步阐述。