我正在将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));
}
}
答案 0 :(得分:0)
我认为MyCustomer
类中有一些属性无法由XML Serializer
序列化。就像通用的Dictionary<>
一样。
将[XmlIgnore]
属性放在这些属性上,然后重试。如果在那之后你的代码工作,你只需要制作一些代理到XML并且没有任何问题的代理属性。