Я должен реализовать какой-то протокол.Все xmls, которые мне нужно сериализовать (контракты WCF), всегда имеют два указанных раздела и один раздел «контент» - например:
Первый:
<X>
<Y>
<Content1/>
</Y>
</X>
Второй:
<X>
<Y>
<Content2/>
</Y>
</X>
Я хочу использовать некоторые дженерики, но затем появилась проблема с именем узла.Я нашел этот ответ: Сериализация DataMember (имя) проблема переопределения , но он не подходит для меня.
Код для моего подхода:
public class X<TContent>
{
[DataMember]
public Y<TContent> yName { get; set; }
}
public class Y<TContent>
{
[DataMember]
public virtual TContent Content { get; set; }
}
И еще есть несколько классов "Content", таких как:
public sealed class Content1Class: Y<Content1>
{
[DataMember(Name = nameof(Content1))]
public override Content1 Content { get; set; }
}
К сожалению, у меня всегда есть null для Content.
Мой вопрос: могу ли я установить атрибуты и отношения между классами для десериализации вышеупомянутого случая?Может быть, мне нужно создать отдельные классы для каждого типа контента?