首頁 > 後端開發 > C++ > 如何將 XML 字串轉換為 C# 物件?

如何將 XML 字串轉換為 C# 物件?

Linda Hamilton
發布: 2025-01-20 08:21:13
原創
158 人瀏覽過

How to Convert XML Strings to C# Objects?

C# XML 字串到物件的轉換:實用指南

透過套接字接收 XML 資料通常需要將其轉換為可用的 C# 物件。 使用 xsd.exe 工具簡化了此過程。

尋找xsd.exe:此工具包含在 Windows SDK 中。 常見的安裝路徑包括:

  • 32 位元系統: C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
  • 64 位元系統: C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
  • Windows 10 及更高版本: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin(或更高版本)

產生 C# 類別:

首先,從 XML 範例產生 XML 架構定義 (XSD) 檔案:

<code class="language-bash">xsd yourfile.xml</code>
登入後複製

這將建立yourfile.xsd。 接下來,將此 XSD 編譯為 C# 類別:

<code class="language-bash">xsd yourfile.xsd /c</code>
登入後複製

產生的 yourfile.cs 檔案包含一個準備反序列化的 C# 類別。

使用 XmlSerializer 反序列化:

XmlSerializer 類別處理 XML 字串到 C# 物件的轉換。 以下是如何從各種輸入來源進行反序列化:

1。來自文件:

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

2。來自記憶流:

<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>
登入後複製

3。來自 StringReader:

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

請記得分別將 "yourfile.xml"msg 替換為您的實際檔案路徑和類別名稱。 這種方法提供了處理從各種來源接收的 XML 字串的靈活性。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板