【问题标题】:JsonIgnore child property from parentJsonIgnore 来自父级的子属性
【发布时间】:2021-12-18 17:18:38
【问题描述】:

在将子类上的父属性序列化为 Json 时,我试图忽略它,但它不起作用。

我有一个这样的对象:

public class DependantQuestionCreateRequest : QuestionCreateRequest
{
    [JsonIgnore]
    public new DependantQuestionCreateRequest DependantQuestion;

}

如您所见,我隐藏父属性 DependantQuestion 只是为了向子属性添加 JsonIgnore 属性。

这是因为两个类是相等的,唯一的区别是父类可以在里面包含一个子类作为属性,而子类不能。

我不想将所有道具从一个模型复制到另一个模型,只是为了避免在 DependantQuestion 属性上大摇大摆地进行序列化。

虽然这段代码不起作用,我的大摇大摆地显示它就像

"dependantQuestion" : "string"

在我看来,这意味着 JsonIgnore 属性实际上被忽略了。

有谁知道在孩子身上隐藏这个父属性的方法?

【问题讨论】:

  • 尝试使用virutal/override并覆盖子属性,而不是用关键字new隐藏它
  • 是的,使用虚拟/覆盖this works
  • 谢谢你们。它正在工作:)。

标签: c# json .net-core swagger


【解决方案1】:

@gunr2171 和 @Fabjan 在 cmets 上提供的解决方案回答了我的问题。

public class BaseClass
{
    public virtual string MyProperty {get;set;} 
}

public class ChildClass : BaseClass
{
    [JsonIgnore]
    public override string MyProperty {get;set;}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多