C# 如何序列化Collectionbase插入的对象的附加属性?

C# 如何序列化Collectionbase插入的对象的附加属性?,c#,C#,我有两个类,如下所示,我想将对象student序列化为一个.xml文件。我可以创建xml文件,但不能使用“ClassName”属性 [Serializable] public class Person { [XmlAttribute] public string FirstName { get; set; } [XmlAttribute] public string LastName { get; set; } } public class Student :

我有两个类,如下所示,我想将对象student序列化为一个.xml文件。我可以创建xml文件,但不能使用“ClassName”属性

[Serializable]
public class Person
{
    [XmlAttribute]
    public string FirstName { get; set; }
    [XmlAttribute]
    public string LastName { get; set; }
}

public class Student : System.Collections.CollectionBase, IEnumerable<Person>
{

    [XmlAttribute]
    public string ClassName { get; set; }

    public void Add(Person person) 
    {
        List.Add(person);
    }

    public Person this[int index]
    {
        get
        {
            return (Person)List[index];
        }
    }

    #region IEnumerable<Person> 成员

    public new IEnumerator<Person> GetEnumerator() 
    {
        foreach (Person transducer in List)
        yield return transducer;
    }

    #endregion
}

如何获取属性???

问题在于对实现
IList
的所有内容的默认序列化。它只是枚举内容,而不是属性

解决方案是不在序列化类中实现
CollectionBase
,而是创建一个执行以下操作的属性:

public class Student
{
    List<Person> Items { get; set; }
}
公共班级学生
{
列表项{get;set;}
}

您的XML文件没有生成类名吗?
public class Student
{
    List<Person> Items { get; set; }
}