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

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

Linda Hamilton
リリース: 2025-01-20 08:31:09
オリジナル
709 人が閲覧しました

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

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