當我嘗試將xml配置文件加載到對象時,所有xml元素都被反序列化,但「xml attrubutes」加載爲null。將XML反序列化爲對象 - 來自attrubutes的空值
我有xml文件:
<?xml version="1.0" encoding="windows-1250"?>
<CAS_POLSKA>
<Komunikacja>
<Typ>RS232</Typ>
<Port>6</Port>
<BaudRate>115200</BaudRate>
<Interval>5000</Interval>
<Retry>3</Retry>
<TYPWAGI>POS</TYPWAGI>
<!-- model type of scale (CL5000, LP16, POSCALE, etc...). -->
<RODZAJWAGI>POSCALE</RODZAJWAGI>
<PASEKPOSTEPU>1</PASEKPOSTEPU>
<DEBUGMESS>1</DEBUGMESS>
<AKCJA>WYSYLKA</AKCJA>
<TYPDANYCH>PLU</TYPDANYCH>
</Komunikacja>
<DEFAULT DEPARTMENT="1" PLUTYPE="1" />
<Dane>
<!-- W polu Grupa definiujemy bitowo NW, FIX i BAR -->
<RECORD PLU="1" NAZWA01="AccesPoint LINKSYS WRT 54G" UNITPRICE="30378" ITEMCODE="1234"/>
<RECORD PLU="2" NAZWA01="Access Point EDIMAX EW-7209" UNITPRICE="30500" ITEMCODE="222" GROUP="1"/>
<RECORD PLU="3" NAZWA01="szynka" UNITPRICE="1000" ITEMCODE="3133" GROUP="3"/>
<RECORD PLU="4" NAZWA01="szynka" UNITPRICE="2000" ITEMCODE="3134" GROUP="4"/>
<RECORD PLU="5" NAZWA01="szynka" UNITPRICE="3000" GROUP="7"/>
</Dane>
</CAS_POLSKA>
,我嘗試讀取它反對:
class Program
{
static void Main(string[] args)
{
System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(CAS_POLSKA));
System.IO.StreamReader file = new System.IO.StreamReader(@"plu_cas.xml");
CAS_POLSKA CAS = new CAS_POLSKA();
CAS = (CAS_POLSKA)reader.Deserialize(file);
}
}
[Serializable()]
public class CAS_POLSKA
{
[System.Xml.Serialization.XmlElement("Komunikacja")]
public Komunikacja komunikacja { get; set; }
[System.Xml.Serialization.XmlArray("Dane")]
[System.Xml.Serialization.XmlArrayItem("RECORD", typeof(Record))]
public Record[] record { get; set; }
}
[Serializable()]
public class Komunikacja
{
//...
//this code load correctly
}
[Serializable()]
public class Record
{
[System.Xml.Serialization.XmlAttribute("NR")]
public int NR { get; set; }
[System.Xml.Serialization.XmlAttribute("NAZWA")]
public string NAZWA { get; set; }
}
,並將其加載CAS.rocord負載陣列5個元素,但所有的屬性NR由...和一片空白。