首頁 >後端開發 >C++ >如何使用 xsd.exe 和 XmlSerializer 將 XML 字串轉換為 C# 物件?

如何使用 xsd.exe 和 XmlSerializer 將 XML 字串轉換為 C# 物件?

Patricia Arquette
Patricia Arquette原創
2025-01-20 08:26:09887瀏覽

How to Convert XML Strings to C# Objects using xsd.exe and XmlSerializer?

高效處理套接字接收的XML字串:C#物件轉換指南

透過套接字接收XML字串後,將其轉換為C#物件以便進一步處理非常有用。 Windows SDK提供的xsd.exe工具可以輕鬆實現這一目標。

步驟一:產生XSD檔

使用xsd.exe將範例XML字串轉換為XSD文件,指令如下:

<code>xsd yourfile.xml</code>

這將建立一個名為yourfile.xsd的文件,定義了XML訊息的模式。

步驟二:產生C#類別

接下來,使用以下指令將產生的XSD檔轉換為C#類別:

<code>xsd yourfile.xsd /c</code>

這將產生一個名為yourfile.cs的文件,其中包含一個可用於反序列化接收到的XML字串的類別。

使用XmlSerializer進行反序列化

要反序列化傳入的XML字串,請為產生的類別建立XmlSerializer實例,並將包含XML資料的流或讀取器傳遞給它。以下是幾種實作方法:

  • 使用FileStream:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
  • 使用MemoryStream:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>
  • 使用StringReader:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
StringReader rdr = new StringReader(inputString);
msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>

透過這些步驟,您可以成功地將傳入的XML字串轉換為C#對象,以便在C#程式碼中輕鬆操作和處理。

以上是如何使用 xsd.exe 和 XmlSerializer 將 XML 字串轉換為 C# 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn