0

我需要将包含类型对象的列表序列化为 xml Pair<T,U>

首先,我创建了一个类PairList来保存对的列表,然后我创建了代表一对两个值的实际类,key并且value.

[XmlRoot("pairList")]
public class PairList<T,U> 
{
    [XmlElement("list")]
    public List<Pair<T,U>> list;

    public PairList()
    {
        list = new List<Pair<T, U>>();
    }
}

public class Pair<T, U>
{
    [XmlAttribute("key")]
    public T key;

    [XmlAttribute("value")]
    public U value;

    public Pair(T t, U u)
    {
        key = t;
        value = u;
    }
}

然后,我尝试序列化它:

PairList<string,int> myList = new PairList<string,int>();
myList.list.Add(new Pair<string, int>("c", 2));
myList.list.Add(new Pair<string, int>("c", 2));
myList.list.Add(new Pair<string, int>("c", 2));
myList.list.Add(new Pair<string, int>("c", 2));
try
{
    XmlSerializer serializer = new XmlSerializer(typeof(PairList<string, int>));
    TextWriter tw = new StreamWriter("list.xml");
    serializer.Serialize(tw, myList);
    tw.Close();
}
catch (Exception xe)
{
    MessageBox.Show(xe.Message);
}

不幸的是,我遇到了一个例外:There was an error reflecting type: PairList[System.String,System.Int32]. 欢迎任何关于如何避免此异常和序列化列表的想法。

4

1 回答 1

1

只需在您的Pair<T, U>类中添加一个无参数构造函数,它就可以工作......

public Pair()
{
}
于 2013-06-09T16:02:21.363 回答