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
請不要在問題中提供答案。我刪除它。 –