私はSQL ServerからのXMLをデシリアライズの問題を抱えています。 XMLは良いです。それをデシリアライズするコードは既知の作業コードです。何らかの理由で第1レベルと第2レベルを逆直列化しているだけです。これはクラスとXMLの不一致を意味する必要がありますが、それを見つめた後は識別できません。デシリアライズのXML
これは、XMLの抜粋です。
<Options>
<Countries>
<Country ID="1" Name="Afghanistan" Code="AF" ISO="4" SubDivision="City" PostalName="Postal Code" />
<Country ID="2" Name="Albania" Code="AL" ISO="8" SubDivision="City" PostalName="Postal Code" />
<Country ID="3" Name="Algeria" Code="DZ" ISO="12" SubDivision="City" PostalName="Postal Code" />
<Country ID="4" Name="American Samoa" Code="AS" ISO="16" SubDivision="City" PostalName="Postal Code" />
<Country ID="5" Name="Andorra" Code="AD" ISO="20" SubDivision="City" PostalName="Postal Code" />
</Countries>
<EntityTypes>
<EntityType ID="4" Name="Individual" />
<EntityType ID="5" Name="Business" />
</EntityTypes>
</Options>
これはOptions
クラスです:
namespace RecoverItWCF.Classes
{
[DataContract]
[Serializable()]
public class Options
{
[DataMember(Name = "Categories", IsRequired = false)]
[XmlElement("Categories")]
public Category[] Categories;
[DataMember(Name = "Countries", IsRequired = false)]
[XmlElement("Countries")]
public Country[] Countries;
[DataMember(Name = "EntityTypes", IsRequired = false)]
[XmlElement("EntityTypes")]
public EntityType[] EntityTypes;
}
}
これはCountry
クラスです:
namespace RecoverItWCF.Classes
{
[DataContract]
[Serializable()]
public class Country
{
[DataMember(Name = "ID", IsRequired = true)]
[XmlAttribute("ID")]
public string ID { get; set; }
[DataMember(Name = "Name", IsRequired = true)]
[XmlAttribute("Name")]
public string Name { get; set; }
// truncated for brevity
}
}
これはEntityType
クラスです:
namespace RecoverItWCF.Classes
{
[DataContract]
[Serializable()]
public class EntityType
{
[DataMember(Name = "ID")]
[XmlAttribute("ID")]
public Int16 ID { get; set; }
[DataMember(Name = "Name")]
[XmlAttribute("Name")]
public string Name { get; set; }
}
}
Options
要素はCategories
要素(正解)を含まない、及びCountries
要素(正解)を含有しないが、ブレークポイントで強調表示されたときにCountries
レベルがその下に何も(NO Country
配列)を有していない、それがなければなりません200 Country
要素。 EntityTypes
要素も含まれていますが、その下には何もありません。
は、しかし、うまくいかなかったこと、ありがとうございます。私はOptionsクラスを修正しました。この問題は、CountryクラスとEntityTypeクラスにあるようです。私は親(国)のうちの1つを取得していますが、国レベルではIDと名前のnull値があり、国は1つだけです。 – Greg