我在 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 不知道该怎么办...