C# 如何设置';ItemNullValueHandling';c语言中的动态值#

C# 如何设置';ItemNullValueHandling';c语言中的动态值#,c#,json,json.net,C#,Json,Json.net,我需要根据类属性值在响应中显示属性。如果我们默认初始化该类,则所有属性都将初始化。因此,我想忽略基于属性的属性 这是我的班级 [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] Public class Student { public string name{get; set;} public string address{get;set;} public bool succes

我需要根据类属性值在响应中显示属性。如果我们默认初始化该类,则所有属性都将初始化。因此,我想忽略基于属性的属性

这是我的班级

[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]
    Public class Student
    {
     public string name{get; set;}
    public string address{get;set;}
    public bool success{get;set;}
    }
在上面的类中,基于success的值,我必须决定显示响应的属性,即使它们为null

我认为一个解决办法是保持

[JsonObject(ItemNullValueHandling=NullValueHandling.Ignore)]

但是动态地我必须设置ItemNullValueHandling的值我不知道如何动态地设置,请任何人建议我。


提前谢谢

您将无法使用属性动态更改序列化设置,因为它们在编译时是固定的

但是,您可以将JsonSerializerSettings的实例传递给反序列化()方法,如下所示

var showAllProperties=student.success;
var serializerSettings=new JsonSerializerSettings{
NullValueHandling=showAllProperties?NullValueHandling。包括:NullValueHandling.Ignore;
}
var result=JsonConvert.SerializeObject(学生,serializerSettings)