【发布时间】:2013-03-11 11:56:37
【问题描述】:
我在一个 WebForms 中,我尝试将一个对象序列化为 XML 代码。好吧,使用:
using (FileStream writer = new FileStream("c:/temp/file.xml", FileMode.Create, FileAccess.Write))
{
DataContractSerializer ser = new DataContractSerializer(videoContainer.GetType());
ser.WriteObject(writer, videoContainer);
}
我收到此错误:不应使用数据合同名称“YouTubeEntry:http://schemas.datacontract.org/2004/07/Google.GData.YouTube”键入“Google.GData.YouTube.YouTubeEntry”。将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。
所以我尝试了这个:
IEnumerable<string> lista = new List<string>();
lista.ToList().Add("YouTubeEntry:http://schemas.datacontract.org/2004/07/Google.GData.YouTube");
using (FileStream writer = new FileStream("c:/temp/file.xml", FileMode.Create, FileAccess.Write))
{
DataContractSerializer ser = new DataContractSerializer(videoContainer.GetType(), lista);
ser.WriteObject(writer, videoContainer);
}
通过 KnownTypeAttribute 列表,但似乎无法获取列表? :O 不知道我应该怎么做...
【问题讨论】:
标签: c# .net serialization