Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Deserialize XML ke dalam Objek C# Menggunakan XmlSerializer?

Bagaimana untuk Deserialize XML ke dalam Objek C# Menggunakan XmlSerializer?

Barbara Streisand
Barbara Streisandasal
2025-01-15 15:56:47381semak imbas

How to Deserialize XML into C# Objects Using XmlSerializer?

Deserialize XML ke objek C# menggunakan XmlSerializer

Artikel ini meneroka cara menggunakan kelas XmlSerializer untuk menyahsiri dokumen XML menjadi tika objek. Katakan anda mempunyai dokumen XML dengan struktur berikut:

<code class="language-xml"><steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist></code>

Untuk menyahsiri XML ini ke dalam model kelas yang sepadan, anda perlu mentakrifkan kelas berikut:

<code class="language-csharp">[XmlRoot("StepList")]
public class StepList
{
    [XmlElement("Step")]
    public List<Step> Steps { get; set; }
}

public class Step
{
    [XmlElement("Name")]
    public string Name { get; set; }
    [XmlElement("Desc")]
    public string Desc { get; set; }
}</code>

Seterusnya, anda boleh menggunakan XmlSerializer untuk menyahsiri. Berikut ialah contoh kod ujian:

<code class="language-csharp">string testData = @"<steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist>";

XmlSerializer serializer = new XmlSerializer(typeof(StepList));
using (TextReader reader = new StringReader(testData))
{
    StepList result = (StepList)serializer.Deserialize(reader);
}</code>

Untuk menyahsiri XML daripada fail teks, muatkan fail ke dalam FileStream dan hantar ke XmlSerializer:

<code class="language-csharp">using (FileStream fileStream = new FileStream("<文件路径>", FileMode.Open))
{
    StepList result = (StepList)serializer.Deserialize(fileStream);
}</code>

Sila gantikan <文件路径> dengan laluan sebenar ke fail XML anda.

Atas ialah kandungan terperinci Bagaimana untuk Deserialize XML ke dalam Objek C# Menggunakan XmlSerializer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn