Я хочу создать базовый класс, который содержит свойство, которое сериализует текущий экземпляр класса. Таким образом, мне не нужно добавлять свойство Payload
к каждому классу, который я хочу сериализовать, и если бы я хотел изменить способ сериализации, мне не пришлось бы изменять его во ВСЕХ моих классах.
public class BaseClass
{
public string Payload => JsonSerializer.Serialize(this);
}
public class DerivedClass : BaseClass
{
public string ClientId { get; set; }
...other properties left out
}
Проблема в том, что this
всегда находится в контексте BaseClass
, поэтому он ничего не знает о производном классе. Я читал, где плохая практика для BaseClass
знать что-либо о производном классе. Итак, каковы мои варианты в этом сценарии?