【发布时间】:2021-05-24 07:07:42
【问题描述】:
我想弄清楚如何为一个值创建一个属性 [NonSerialized]
看看这个:
using System;
using System.Text.Json;
class Test
{
public static bool GoingToBeSerialized = false;
public int PaymentForTheDay { get; set; }
public int NumberOfDays { get; set; }
// i want to disable it if GoingToBeSerialized is true
[System.Text.Json.Serialization.JsonIgnore]
public int TotalPayment;
public bool ShouldSerializeTotalPayment() => GoingToBeSerialized;
}
谢谢。
【问题讨论】:
-
AFAIK“条件序列化”默认情况下不适用于
BinaryFormatter,除非您实现ISerializable并手动执行;但是,BinaryFormatter被认为已弃用且危险,所以说实话:您不应该使用它 - 几乎任何其他序列化程序都会更好,许多人会直接使用public bool ShouldSerializeTotalPayment() => GoingToBeSerialized; -
我正在尝试使用 Json 进行序列化,我该如何使用
public bool ShouldSerializeTotalPayment() => GoingToBeSerialized;?? -
我只是想检查一下:你确定你真的在使用
BinaryFormatter吗?我经常看到人们将类型标记为[Serializable]以与XmlSerializer、JsonConvert等一起使用——而[Serializable]则什么都不做 -
@Shamilx "with JSON" - 使用什么序列化程序?你能展示你用来序列化的代码吗?很重要
-
@Shamilx 很棒; 如何您尝试使用 JSON 进行序列化?请向我们展示您序列化的代码行 - 这可能足以让我们确定您正在使用哪个 JSON 序列化程序(有很多)
标签: c# json-serialization