我想序列化這個類:XmlSerializer.Serialize異常:「類型[type]不是預期的。」
[XmlRoot("ArrayOfEvent")]
public class EventList
{
public EventList()
{
}
public EventList(IEnumerable<Event> items)
{
Items = items;
}
[XmlArray("")]
public IEnumerable<Event> Items { get; set; }
}
這裏是包含在EventList.Items
的Event
類:
public class Event
{
[XmlElement]
public string ID { get; set; }
[XmlElement]
public string Title { get; set; }
[XmlElement]
public string Description { get; set; }
[XmlElement]
public string Location { get; set; }
[XmlElement]
public DateTime? StartTime { get; set; }
[XmlElement]
public DateTime? EndTime { get; set; }
[XmlElement]
public bool? AllDay { get; set; }
}
這裏的地方發生錯誤:
public static XmlDocument ToXmlDocument<T>(T obj)
{
var xmlDocument = new XmlDocument();
var nav = xmlDocument.CreateNavigator();
if (nav != null)
{
using (var writer = nav.AppendChild())
{
var ser = new XmlSerializer(typeof(T));
ser.Serialize(writer, obj); //throws exception
}
}
return xmlDocument;
}
的XmlSerializer
給我致電Serialize()
時發生此錯誤:
The type Domain.EventList was not expected.
Use the XmlInclude or SoapInclude attribute to specify types that are not
known statically.
我在EventList
類還有Event
類使用[XmlInclude(typeof(EventList))]
嘗試,但沒有這些想法的工作。我不知道還有什麼要做。
有人熟悉這個問題嗎?我該如何解決它?提前致謝。
也許一個愚蠢的評論,但你使用[Serializable]屬性? – gleng
@gleng'XmlSerializer'對'[Serializable]'沒有興趣' –
@gleng是的,我嘗試過,但沒有效果。 – Kehlan