C# Newtonsoft Jsonconverter在派生列表时未序列化属性<&燃气轮机;

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

考虑下面的代码。 当我试图通过调用“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(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似乎回到了列表/数组。为什么您甚至从列表派生?通常您不需要它。只需使用列表,例如,通过公开
列表
。看起来像和的副本。现在,这是我将要使用的解决方案使用。虽然这不完全是我想要的,但我现在必须做一些其他的事情。我希望在不久的将来进一步阐述。目前,这是我将使用的解决方案。虽然这不完全是我想要的,但我现在必须做些其他的事情。我希望在不久的将来进一步阐述。