0
我称这个类identity
C#XML反序列化
namespace Game.World.Entities
{
[XmlRoot("Identity")]
public class Identity
{
public string Name { get; set; }
public string Texture { get; set; }
public string HeroType { get; set; }
public Stats Stats { get; set; }
public ActiveAbilitites ActiveAbilitites { get; set; }
public PassiveAbilitites PassiveAbilitites { get; set; }
}
public class ActiveAbilitites
{
[XmlElement("AbilityId")]
public List<int> ActiveAbilitiesId { get; set; }
}
public class PassiveAbilitites
{
[XmlElement("AbilityId")]
public List<int> PassiveAbilitiesId { get; set; }
}
public class Stats
{
public int Health { get; set; }
public int MagicDamage { get; set; }
public int PhysicalDamage { get; set; }
public int Defense { get; set; }
}
}
我已经系列化该类到一个XML文档:
<?xml version="1.0" encoding="utf-8"?>
<Identity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>foo</Name>
<Texture>player</Texture>
<HeroType>tracker</HeroType>
<Stats>
<Health>5</Health>
<MagicDamage>5</MagicDamage>
<PhysicalDamage>5</PhysicalDamage>
<Defense>5</Defense>
</Stats>
<ActiveAbilitites>
<AbilityId>1</AbilityId>
<AbilityId>2</AbilityId>
<AbilityId>3</AbilityId>
</ActiveAbilitites>
<PassiveAbilitites>
<AbilityId>1</AbilityId>
<AbilityId>2</AbilityId>
<AbilityId>3</AbilityId>
</PassiveAbilitites>
</Identity>
然而,当我尝试和deseralize的XML为identity
对象我获取错误
xml文档(2,2)有错误.....
System.InvalidOperationException不是预期的。
在Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderList1.Read6_ArrayOfIdentity()
现在因为XML来自seralization这是绊倒我,所以我不知道为什么我不能deseralize它。我假设我错过了某处的注释标记,任何有关此事的帮助都会令人惊叹。
您能告诉我们您用于机器人序列化和反序列化的代码吗? –
事实证明这是非代码化的代码,如果我从.xml文件读取它,它工作正常,但是当我从字符串中去除xml时,我的错误发生了。当我得到它与一个字符串工作时,我会更新这个评论 编辑 不知道我做了什么去搞乱deseralizer,但我现在有一个字符串的工作。 var reader = new StringReader(template); var identity =(Identity)serializer.Deserialize(reader); – zidsal
请不要在问题中提供答案。我删除它。 –