Restsharp和反序列化派生类型
本文关键字:类型 派生 反序列化 Restsharp | 更新日期: 2023-09-27 18:26:41
考虑以下XML:
<events xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" artist="Rammstein" festivalsonly="0" page="1" perPage="50" totalPages="1" total="25">
<event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<id>1985967</id>
<title>Rammstein: "Made in Germany 1995 -2011 LIVE"</title>
<artists>
<artist>Rammstein</artist>
<artist>Deathstars</artist>
<headliner>Rammstein</headliner>
</artists>
</event>
</events>
我想将artists
下的所有标签反序列化为一个列表。到目前为止我所拥有的:
public class Artist
{
public string Value { get; set; }
}
public class HeadLiner : Artist
{
}
public class ArtistCollection : List<Artist>
{
}
public class Event
{
public ArtistCollection Artists { get; set; }
}
我希望最后能得到一个包含3个项目的列表(两个艺术家和一个头条新闻),但我只得到了艺术家。Restsharp有可能让这种行为跳出框框吗?还是我需要一个自定义序列化程序?
使用属性,我想我需要XmlInclude
属性,但到目前为止,我喜欢Restsharp的"开箱即用"部分。
从你的帖子发布之日起,我可能有点迟到了,但迟到总比不迟到好。
我认为您的xml需要更像这样:
<events xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" artist="Rammstein" festivalsonly="0" page="1" perPage="50" totalPages="1" total="25">
<event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<id>1985967</id>
<title>Rammstein: "Made in Germany 1995 -2011 LIVE"</title>
<artists>
<artist>Rammstein</artist>
<artist>Deathstars</artist>
<artist xsi:type="headliner">Rammstein</artist>
</artists>
</event>
</events>