Как подменить атрибут поля в наследуемом классе?
От: mDmitriy Россия  
Дата: 22.11.16 11:12
Оценка:
Всем привет!

Есть примерно такой класс
[DataContract]
public ResponseBase<T>
{
    // тут еще много чего

    [DataMember]
    public T Data
}

При сериализации объектов этого типа и его наследников (как SOAP-ответ WCF-сервиса) получаем xml вида
<ResponseBase>
    <Data>
      <!-- сериализованyые данные типа T -->
    </Data>
</ResponseBase>

Для некоторых случаев тэг <Data> должен иметь другое имя
Решение в лоб типа
[DataContract]
public MyResponse<string>
{
    // тут еще много чего

    [DataMember(Name = "NeedName")]
    public new string Data { get { return base.Data; } set { Data = value; }}
}

не срабатывает

Дублирование поля с нужным именем срабатывает, но тоже не подходит, т.к., XML разрастается
Какие еще есть варианты? (без аналогов ISerialize и управления сериализацией посредством Behavior's )
Спасибо...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.