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

ネットワーク メッセージ処理用に XML 文字列を C# オブジェクトに効率的に変換するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-20 08:16:08
オリジナル
787 人が閲覧しました

How Can I Efficiently Convert XML Strings to C# Objects for Network Message Processing?

ネットワーク メッセージを効率的に処理: XML 文字列を C# オブジェクトに変換します

ネットワーク通信では、XML 形式を使用してデータを交換することが非常に一般的です。ただし、これらの XML メッセージを C# で効果的に処理するには、操作を容易にするために対応する C# オブジェクトに変換する必要があります。

解決策:

Microsoft が提供する xsd.exe ツール (Windows SDK に含まれています) は、この変換を実現できます。このツールは、XML スキーマ定義 (XSD) ファイルを使用して C# クラスを生成します。

ステップバイステップガイド:

  1. XSD ファイルの作成 (ステップ 1):

    次のコマンドを使用して、XML メッセージから XSD ファイル (yourfile.xsd) を作成します。

    <code>xsd yourfile.xml</code>
    ログイン後にコピー
  2. C# クラスの生成 (ステップ 2):

    xsd.exe ツールを再度使用して、XSD ファイルに基づいて C# クラス (yourfile.cs) を生成します。

    <code>xsd yourfile.xsd /c</code>
    ログイン後にコピー

XML シリアル化を使用してメッセージを処理します:

C# クラスを生成した後、XmlSerializer を使用して、受信した XML 文字列を生成されたクラスのインスタンスに逆シリアル化できます。これにより、C# アプリケーションでのメッセージ データへのアクセスと操作が簡単になります。

次のコード スニペットは、このプロセスを示しています:

<code>XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
ログイン後にコピー

その他のメソッド:

XmlSerializer は、逆シリアル化のためにファイルから XML を読み取るだけでなく、メモリ ストリームや StringReader を含む任意のストリームから逆シリアル化することもできます。これにより、さまざまなソースからの XML データを処理する際の柔軟性が提供されます:

  • メモリストリーム:

    <code>  MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
      msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>
    ログイン後にコピー
  • 文字列リーダー:

    <code>  StringReader rdr = new StringReader(inputString);
      msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>
    ログイン後にコピー

これにより、XML ベースのネットワーク通信が C# コード ベースとシームレスに統合され、効率的なデータ処理と抽出が可能になります。

以上がネットワーク メッセージ処理用に XML 文字列を C# オブジェクトに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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