我有以下的類結構(未BTW簡體):基本系列化拋出一個「無效的XML」的錯誤
[Serializable]
[XmlInclude(typeof(Twitter))]
[XmlInclude(typeof(LinkedIn))]
public abstract class SocialNetworkBase : ISocialNetwork
{
public abstract string UserName { get; set; }
}
public class Twitter : SocialNetworkBase
{
public override string UserName { get; set; }
}
public class LinkedIn : SocialNetworkBase
{
public override string UserName { get; set; }
}
然後我試圖序列的「SocialNetworkBase就像一個列表:
new XmlSerializer(typeof(List<SocialNetworkBase>)).Serialize(ms, socialNetworks)
它返回
<?xml version="1.0"?>
<ArrayOfSocialNetworkBase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SocialNetworkBase xsi:type="LinkedIn">
<UserName>someUsername</UserName>
</SocialNetworkBase>
</ArrayOfSocialNetworkBase>
當嘗試使用反序列化:
return new XmlSerializer(typeof(List<SocialNetworkBase>)).Deserialize(ms) as List<SocialNetworkBase>;
以下引發錯誤:
有XML文檔中出現錯誤(0,0)。 (「根元素缺失」)
這是怎麼回事?反序列化到SocialNetworBase[]
將引發相同的錯誤。
已經這樣做了:-) – 2010-03-01 12:59:32
@jan:請清除它:使用Seek()後會出現同樣的錯誤嗎? – 2010-03-01 14:33:54