Я пытаюсь десериализовать некоторые xml-файлы в некоторые классы, которые были упрощены до следующего:
[XmlRoot("person")]
[Serializable]
public class Person
{
[XmlElement]
public Toy Toy { get; set; }
}
[Serializable]
public class ActionMan : Toy
{
[XmlElement("guns")]
public string Guns;
}
[Serializable]
public class Doll : Toy
{
[XmlElement("name")]
public String Name;
}
[XmlInclude(typeof(Doll))]
[XmlInclude(typeof(ActionMan))]
public class Toy
{
}
[TestFixture]
public class ToyTest
{
[Test]
public void testHierarchy()
{
String filePath = @"test\brother.xml";
String sisfilePath = @"test\sister.xml";
var serializer = new XmlSerializer(typeof(Person));
Person brother = (Person)serializer.Deserialize(new FileStream(filePath, FileMode.Open));
Person sister = (Person)serializer.Deserialize(new FileStream(sisfilePath, FileMode.Open));
Assert.IsNotNull(brother);
Assert.IsNotNull(sister);
Assert.IsAssignableFrom(typeof(ActionMan),brother.Toy);
Assert.IsAssignableFrom(typeof(Doll),sister.Toy);
}
}
Я хочу использовать сериализацию c # (я знаю, что могу использовать свой собственный десериализатор) иЯ думаю, что, возможно, я просто пропускаю определенный тег, о котором я не знаю (и я уверен, что у меня есть лишние теги).
вот один из файлов xml:
<person>
<doll>
<name>Jill</name>
</doll>
</person>
ошибка, которую я получаю: «Ожидается: назначается из» на третьем утверждении