首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板