Home >Backend Development >C++ >How to Convert XML Strings to C# Objects?

How to Convert XML Strings to C# Objects?

Linda Hamilton
Linda HamiltonOriginal
2025-01-20 08:21:13162browse

How to Convert XML Strings to C# Objects?

C# XML String to Object Conversion: A Practical Guide

Receiving XML data via a socket often necessitates converting it into usable C# objects. This process is streamlined using the xsd.exe tool.

Locate xsd.exe: This tool is included with the Windows SDK. Common installation paths include:

  • 32-bit systems: C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
  • 64-bit systems: C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
  • Windows 10 and later: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin (or a later version)

Generating the C# Class:

First, generate an XML Schema Definition (XSD) file from your XML sample:

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

This creates yourfile.xsd. Next, compile this XSD into a C# class:

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

The resulting yourfile.cs file contains a C# class ready for deserialization.

Deserialization using XmlSerializer:

The XmlSerializer class handles the conversion of the XML string into your C# object. Here's how to deserialize from various input sources:

1. From a File:

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

2. From a Memory Stream:

<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. From a StringReader:

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

Remember to replace "yourfile.xml" and msg with your actual file path and class name, respectively. This approach provides flexibility in handling XML strings received from various sources.

The above is the detailed content of How to Convert XML Strings to C# Objects?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn