У меня есть сложная иерархия классов, которые реализуют всю необходимую функциональность. Я ссылаюсь на базовый абстрактный класс из этой иерархии в моем классе serializable. Мне просто нужно добавить одно дополнительное свойство во время сериализации, но со стороны ему должно понравиться, что это свойство всегда было в этом классе. Прямо сейчас json.net привязывает его к названию свойства.Как легко украсить класс
public class SerializeMe
{
AbstractValidation _validation;
public SerializeMe(AbstractValidation validation)
{
this._validation = validation;
}
[JsonProperty(PropertyName = "designer|displayName")]
public string DisplayName
{
get { return string.Concat(_validation.Field, _validation.Type); }
}
public AbstractValidation Validation
{
get
{
return _validation;
}
}
}
Что я получаю, например:
{
"DisplayName":"F_Director_Empl_Rolepresence",
"Validation":{
"type":"presence",
"field":"F_Director_Empl_Role"
}
}
мне нужно:
{
"DisplayName":"F_Director_Empl_Rolepresence",
"type":"presence",
"field":"F_Director_Empl_Role"
}
Здесь мне нужно избавиться от раздела Validation - как будто отображаемое_имя является частью класса AbstractValidation. Я мог наследовать классы от предков AbstractValidation, но иерархия довольно сложная. Вместо этого я ищу способ украсить классы.