我正在尝试创建一个可以通过 XMLSerializer 序列化为 XML 的类。
目标 XML 应如下所示
<subject_datas type="array">
<subject_data>
...
</subject_data>
<subject_data>
...
</subject_data>
</subject_datas>
问题是 subject_datas 标记的类型属性。我尝试将其设计为派生列表并附加一个带有 XMLAttribute 属性的属性,如下所示
[XmlRoot(ElementName = "subject_datas")]
public class SubjectDatas : List<SubjectData>
{
public SubjectDatas (IEnumerable<SubjectData> source)
{
this.AddRange(source);
Type = "array";
}
[XmlAttribute(AttributeName = "type")]
public string Type { get; set; }
}
但是因为该类是一个 Collection,所以 XMLSerializer 只会序列化 Collection 中的对象,而不是 Collection 本身。所以我的 Type 属性被忽略了:(