私は 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);
}
次のエラーが表示されました: Type 'Google.GData.YouTube.YouTubeEntry' with data contract name 'YouTubeEntry: http://schemas.datacontract.org/2004/07/Google.GData.YouTube ' is not expected. たとえば、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 どうすればいいのかわからない...