我必须实现一些协议。我需要序列化的所有xml(WCF合同)始终具有两个指定的部分和一个“内容”部分-例如:
第一:
<X>
<Y>
<Content1/>
</Y>
</X>
第二:
<X>
<Y>
<Content2/>
</Y>
</X>
我想使用一些泛型,但随后出现了节点名称问题。 我找到了这个答案:Serialization DataMember (name) override issue,但它不适合我。
我的方法的代码:
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; }
}
不幸的是,我的内容始终为空。
我的问题是: 我可以设置类之间的属性和关系来反序列化上述情况吗?也许我必须为每种内容类型创建单独的类?