В DDD, Объект значения и Перечисление довольно красиво, так что я хочу использовать оба в ежедневных логах программы c, а не только доменные логики c , Когда используются настраиваемые объекты значений и перечисления, возникает проблема сериализации: должен ли я реализовать все объекты значений и перечисления с помощью System.Text.Json.JsonConverter<T>
, или есть какой-нибудь хороший способ обработки сериализации и десериализации?
Обновление:
чтобы прояснить ситуацию, Eumeration
демо, как показано ниже (ValueObject
производные классы одинаковы.):
[JsonConverter(typeof(CustomizedConverter))]
public class CustomizedEnumeration1 : Enumeration
{
public string Customized { get; protected set; }
public ... // some other customized property or class
public CustomizedEnumeration(int id, string name, string customized) : base(id, string) {
Customized = customized;
}
}
public class Customized2 : Enumeration
{ ... }
public class OtherCustomized: Enumeration
{ ... }
В DDD свойства иногда закрываются protected/private setter
, десериализация не имеет права на установить значение. Многие производные классы не могут десериализоваться должным образом, поэтому мы должны переписать сериализацию с System.Text.Json.JsonConverter<T>
один за другим. переписать каждый производный конвертер Enumeration
/ Valueobject
нехорошо, может ли кто-нибудь указать на простую абстракцию для этого?