我見過一個使用包裝類來做到這一點的例子,但我想知道是否有更好的(更簡單)的方法。添加XML屬性到序列化類屬性
我班如下:
public class PartData
{
public List<PartInfo> PartList { get; set; }
}
public class PartInfo
{
public string PartNumber { get; set; }
public string OEMNumbers { get; set; }
public List<VehicleApplication> VehicleApplications { get; set; }
}
public class VehicleApplication
{
public string Year { get; set; }
public string Make { get; set; }
public string Model { get; set; }
}
序列化代碼:
//serialize
private void serialize()
{
PartData p = GetParts();
SerializeClass(p);
}
public void SerializeClass(object instance)
{
var serializer = new XmlSerializer(typeof(PartData));
using (var writer = new StreamWriter("C:\\TestFile.xml"))
{
serializer.Serialize(writer, instance);
}
}
當連載我得到下面的輸出:
<PartData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PartList>
<PartInfo>
<PartNumber>12345</PartNumber>
<OEMNumbers>14556, 14557, 14558, 14559</OEMNumbers>
<VehicleApplications>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
</VehicleApplications>
</PartInfo>
</PartList>
</PartData>
理想我想作部分號碼的屬性如下:
<PartData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PartList>
<PartInfo>
<PartNumber Id ="12345">
<OEMNumbers>14556, 14557, 14558, 14559</OEMNumbers>
<VehicleApplications>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
<VehicleApplication>
<Year>2001</Year>
<Make>Ford</Make>
<Model>F150</Model>
</VehicleApplication>
</VehicleApplications>
</Partnumber>
</PartInfo>
</PartList>
</PartData>
我試着加入:
public class PartInfo
{
[XmlAttribute("Id")]
public string PartNumber { get; set; }
public string OEMNumbers { get; set; }
public List<VehicleApplication> VehicleApplications { get; set; }
}
而造成:
<PartInfo Id="12345">
當我需要:
<PartNumber Id="12345">
你大概的意思''(如,沒有'PartNumber'作爲'PartInfo'內容的'包裝')。如果確實如此,只需將'[XmlAttribute]'添加到'PartNumber'屬性。 –
pfyod
2013-04-10 15:00:39
你目前如何序列化?看起來像你可以嘗試'[XmlAttribute]',(也請減少你的例子,花了我一段時間來弄清楚什麼是不同的!) – Sayse 2013-04-10 15:02:32
抱歉的粗略解釋...你們都建議產量:當我想 –
devHead
2013-04-10 15:03:57