首頁 >後端開發 >C++ >如何將透過套接字接收的 XML 字串轉換為 C# 物件?

如何將透過套接字接收的 XML 字串轉換為 C# 物件?

Linda Hamilton
Linda Hamilton原創
2025-01-20 08:31:09686瀏覽

How Can I Convert XML Strings Received Over Sockets into C# Objects?

將套接字接收的XML字串轉換為C#物件

在網路環境中,透過套接字接收XML字串是很常見的。為了有效利用這些XML訊息,需要將它們轉換為C#物件。

提供的範例XML訊息遵循特定結構:

<code class="language-xml"><msg><id>1</id><action>stop</action></msg></code>

要將此類XML字串轉換為C#對象,請依照下列步驟操作:

  1. 建立XSD檔:安裝Windows SDK並使用xsd.exe工具將範例XML轉換為XSD模式檔。執行以下命令:

    <code class="language-bash">xsd yourfile.xml</code>
  2. 產生C#類別:再次使用xsd.exe,將XSD檔案轉換為C#類別。執行此指令:

    <code class="language-bash">xsd yourfile.xsd /c</code>

    這將產生一個C#類別檔案(例如,yourfile.cs)。

  3. 反序列化XML字串:要將XML字串反序列化為C#對象,請建立一個XmlSerializer實例並使用它來反序列化輸入字串。這是一個範例:

    <code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg));
    msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>

    或者,您可以從記憶體流中反序列化:

    <code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg));
    MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
    msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>

    或使用StringReader:

    <code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg));
    StringReader rdr = new StringReader(inputString);
    msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>

此程序可讓您有效地將透過套接字接收的XML字串轉換為C#對象,以便在應用程式中進一步處理和操作。

以上是如何將透過套接字接收的 XML 字串轉換為 C# 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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