Xamarin形式对反序列化Xml数据C#的错误

时间:2019-02-17 18:59:46

标签: c# xml xamarin deserialization icollection

我正在尝试使用Xamarin Forms中的c#类将本地Web服务器上存在的XML文件反序列化为自定义类型的对象,以供在Android设备上使用。 反序列化过程中出现错误:

  

“要进行XML序列化,必须继承自ICollection的类型   在以下所有级别上具有Add(Xamarin.Forms.Element)的实现   它们的继承层次结构。”

为什么会出现此错误?我在哪里放置Add方法,为什么?

我尝试在每个可序列化的类上添加一个空的Add方法-这不能解决问题。

这部分代码进行反序列化。

XmlSerializer xs = new XmlSerializer(typeof(PartyData));
var reader = XmlReader.Create("192.168.0.14/SkillTreesDB.aspx");
partyData = xs.Deserialize(reader) as PartyData;

某些类(包括“技能”)是从Xamarin.Forms视图继承的。

这是其中一个序列化类之一的一部分的示例。包括其中一个收藏。

[Serializable]
public class Skill : StackLayout
{
    [XmlAttribute("name")]
    public string name;
    [XmlAttribute("level")]
    public int level;
    [XmlAttribute("expToNext")]
    public int expToNext;
    [XmlAttribute("exp")]
    public int exp;
    [XmlAttribute("scaling")]
    public float scaling;
    [XmlArray("subSkills") , XmlArrayItem(typeof(SubSkill), ElementName = "subSkill")]
    public List<SubSkill> subSkills;

0 个答案:

没有答案