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

ソケット経由で受信した XML 文字列を C# オブジェクトに変換するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 08:31:09726ブラウズ

How Can I Convert XML Strings Received Over Sockets into C# Objects?

ソケットによって受信された XML 文字列を C# オブジェクトに変換します

ネットワーク環境では、ソケット経由で XML 文字列を受信することがよくあります。これらの XML メッセージを効果的に利用するには、C# オブジェクトに変換する必要があります。

提供されているサンプル XML メッセージは、特定の構造に従います:

<code class="language-xml"><msg><id>1</id><action>stop</action></msg></code>

このような XML 文字列を C# オブジェクトに変換するには、次の手順に従います。

  1. XSD ファイルを作成します: Windows SDK をインストールし、xsd.exe ツールを使用してサンプル XML を XSD スキーマ ファイルに変換します。次のコマンドを実行します:

    <code class="language-bash">xsd yourfile.xml</code>
  2. C# クラスの生成: xsd.exe を再度使用して、XSD ファイルを C# クラスに変換します。次のコマンドを実行します:

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

    これにより、C# クラス ファイル (例: yourfile.cs) が生成されます。

  3. XML 文字列の逆シリアル化: XML 文字列を C# オブジェクトに逆シリアル化するには、XmlSerializer インスタンスを作成し、それを使用して入力文字列を逆シリアル化します。以下に例を示します:

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

    または、メモリ ストリームから逆シリアル化することもできます。

    <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>

    または StringReader を使用します:

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

このプロセスにより、ソケット経由で受信した XML 文字列を C# オブジェクトに効率的に変換し、アプリケーションでさらに処理および操作できるようになります。

以上がソケット経由で受信した XML 文字列を C# オブジェクトに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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