将类序列化为XML时出错

时间:2014-02-27 12:12:35

标签: c# linq serialization xml-serialization

我正在将Linq对象序列化为使用XmlSerializer,但我得到了

  

“反映类型时出错   “System.Collections.Generic.List`1"

我已经使用Serilizable属性扩展了Linq对象,这是我在这里做错了吗?

[Serializable]
public partial class Customer
{
}

[Serializable]
public partial class Comment
{
}


[Serializable]
public class CustomerArchive
{
    public Customer MyCustomer{ get; set; }
    public Comment MyComment { get; set; }
}



 internal static void Serialize(IEnumerable<CustomerArchive> archive, string fileName)
 {
      var serializer = new XmlSerializer(typeof(List<CustomerArchive>)); // Error

      using (var stream = File.Create(fileName))
      {
           using (var sw = new StreamWriter(stream))
           using (var writer = new XmlTextWriter(sw)
           {
                Indentation = 5,
                Formatting = Formatting.Indented
           })
           serializer.Serialize(writer, new List<CustomerArchive>(archive));
       }
 }

1 个答案:

答案 0 :(得分:0)

我认为MyCustomer类中有一些属性无法由XML Serializer序列化。就像通用的Dictionary<>一样。

[XmlIgnore]属性放在这些属性上,然后重试。如果在那之后你的代码工作,你只需要制作一些代理到XML并且没有任何问题的代理属性。