C# XML 文字列からオブジェクトへの変換: 実践ガイド
ソケット経由で XML データを受信すると、多くの場合、それを使用可能な C# オブジェクトに変換する必要があります。 このプロセスは、xsd.exe
ツールを使用して合理化されます。
Locate xsd.exe
: このツールは Windows SDK に含まれています。 一般的なインストール パスには次のものが含まれます:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
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 サイトの他の関連記事を参照してください。