Я пытаюсь десериализовать XML-файл, который существует на локальном веб-сервере, в объекты пользовательских типов, используя классы c # в Xamarin Forms для использования на устройстве 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;
Некоторые классы, в том числе Skill, наследуют от Xamarin.Forms Views.
Вот пример части одного из сериализованных классов, которая делает это.Включая одну из его коллекций.
[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;