Представьте, что вы отметили все конфиденциальные данные с помощью атрибута [Secret] на протяжении всего вашего проекта и хотите, чтобы все это было удалено, когда вы сохраняете свои модели на диск, то есть следующую программу
using System.Text.Json;
JsonSerializerOptions options = new()
{
//Converters = { new JC.SecretAttributeConverterFactory() },
WriteIndented = true
};
C c = new() { Overt = "Overt", Secret = "Secret" };
var json = JsonSerializer.Serialize(c, options);
Console.WriteLine(json);
public class SecretAttribute : Attribute { }
class C
{
public required string Overt { get; set; }
[Secret]
public string? Secret { get; set; }
public List Collection { get; set; } = ["one", "two", "three"];
}
< /code>
Выходы < /p>
{
"Overt": "Overt",
"Collection": ["one", "two", "three"]
}
< /code>
возможно? Если сериализация выполняется без jsonconverter, то все собственные, сериализованы независимо от атрибута [секрета].
Подробнее здесь: https://stackoverflow.com/questions/797 ... properties