ホームページ >バックエンド開発 >C++ >xsd.exe と XmlSerializer を使用して XML 文字列を C# オブジェクトに変換する方法

xsd.exe と XmlSerializer を使用して XML 文字列を C# オブジェクトに変換する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-20 08:26:09825ブラウズ

How to Convert XML Strings to C# Objects using xsd.exe and XmlSerializer?

ソケットで受信した XML 文字列の効率的な処理: C# オブジェクト変換ガイド

ソケット経由で XML 文字列を受信した後、さらに処理するためにそれを C# オブジェクトに変換すると便利です。 Windows SDK によって提供される xsd.exe ツールを使用すると、この目標を簡単に達成できます。

ステップ 1: XSD ファイルを生成する

xsd.exe を使用して、サンプル XML 文字列を XSD ファイルに変換します。コマンドは次のとおりです。

<code>xsd yourfile.xml</code>

これにより、XML メッセージのスキーマを定義する yourfile.xsd というファイルが作成されます。

ステップ 2: C# クラスを生成する

次に、次のコマンドを使用して、生成された XSD ファイルを C# クラスに変換します。

<code>xsd yourfile.xsd /c</code>

これにより、受信した XML 文字列を逆シリアル化するために使用できるクラスを含む yourfile.cs というファイルが生成されます。

XmlSerializer を使用した逆シリアル化

受信 XML 文字列を逆シリアル化するには、生成されたクラスの XmlSerializer インスタンスを作成し、XML データを含むストリームまたはリーダーに渡します。これを行うには、いくつかの方法があります:

  • FileStream を使用する:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
  • MemoryStream を使用する:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>
  • StringReader を使用します:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
StringReader rdr = new StringReader(inputString);
msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>

これらの手順を使用すると、受信 XML 文字列を C# オブジェクトに正常に変換できるため、C# コードでの操作と処理が容易になります。

以上がxsd.exe と XmlSerializer を使用して XML 文字列を C# オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。