[英]Xml Deserialization - Sequence of Mutiple Types
给定以下片段,其中链接是无限制的图像链接和文档链接的序列,那么反序列化的类应该是什么?
<Values>
<Links>
<ImageLink>http://#</ImageLink>
<ImageLink>http://#</ImageLink>
<DocumentLink>http://#</DocumentLink>
</Links>
</Values>
通常,如果只是一个图像链接数组,我可能会有
public class Values
{
public imagelink[] ImageLinks { get; set; }
}
public class ImageLink
{
public string Value { get; set; }
}
但是上面的xml令我很困惑。
顺便说一句,我无法控制xml。
这工作
public class DocumentLink : Link
{
}
public class ImageLink : Link
{
}
public class Link
{
[XmlText]
public string Href { get; set; }
}
public class Values
{
[XmlArrayItem(ElementName = "ImageLink", Type = typeof(ImageLink))]
[XmlArrayItem(ElementName = "DocumentLink", Type = typeof(DocumentLink))]
public Link[] Links { get; set; }
}
您应该具有如下的基类链接
public class Link
{
public string Href { get; set; }
}
public class ImageLink : Link
{
}
public class DocumentLink : Link
{
}
您的值类如下所示:
public class Values
{
public Link[] links { get; set; }
}
或者,您可以使用ArrayList代替强类型数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.