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中文网其他相关文章!