C# XML 字串到物件的轉換:實用指南
透過套接字接收 XML 資料通常需要將其轉換為可用的 C# 物件。 使用 xsd.exe
工具簡化了此過程。
尋找xsd.exe
:此工具包含在 Windows SDK 中。 常見的安裝路徑包括:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
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中文網其他相關文章!