ホームページ > バックエンド開発 > C++ > XML 文字列を C# オブジェクトに変換するにはどうすればよいですか?

XML 文字列を C# オブジェクトに変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-20 08:21:13
オリジナル
196 人が閲覧しました

How to Convert XML Strings to C# Objects?

C# XML 文字列からオブジェクトへの変換: 実践ガイド

ソケット経由で XML データを受信すると、多くの場合、それを使用可能な C# オブジェクトに変換する必要があります。 このプロセスは、xsd.exe ツールを使用して合理化されます。

Locate 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート