【问题标题】:Newtonsoft Jsonconverter not serializing properties when derived of list<> [duplicate]当从列表 <> 派生时,Newtonsoft Jsonconverter 不序列化属性 [重复]
【发布时间】:2019-10-14 11:33:39
【问题描述】:

考虑下面的代码。 当我尝试通过调用“SaveToFile”方法对其进行序列化时,“名称”属性不会被序列化。

有什么想法吗?

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,

            }));
        }
    }
}

【问题讨论】:

标签: c# json inheritance


【解决方案1】:

不要像 here 提到的那样从 List&lt;&gt; 派生你的类。

将您的班级更改为:

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,

        }));
    }
}

【讨论】:

  • 现在这是我将使用的解决方案。但这并不完全是我想要的,我现在必须做点别的。我希望在不久的将来能详细说明。
猜你喜欢
  • 2019-06-30
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多