C# XML シリアル化: 実践ガイド
このガイドでは、XmlSerializer
名前空間内の System.Xml.Serialization
クラスを使用して C# オブジェクトを XML 形式にシリアル化する方法を説明します。 このプロセスは、オブジェクトのデータを XML 表現に変換します。これは、データの保存、送信、または他のシステムとの統合に役立ちます。
シリアル化の手順:
クラス定義: オブジェクトのプロパティが XML 要素および属性にどのようにマップされるかを制御するために、必要な XML 属性 ([XmlElement]
、[XmlAttribute]
など) を使用してクラスが適切に定義されていることを確認します。
XmlSerializer Instantiation: シリアル化するオブジェクトのタイプを指定して、XmlSerializer
クラスのインスタンスを作成します。
StringWriter および XmlWriter: XML 出力を文字列としてキャプチャするには、StringWriter
を使用します。 次に、XmlWriter
を使用して StringWriter
を作成し、書式設定オプション (インデントなど) を指定できるようにします。
シリアル化: Serialize
オブジェクトの XmlSerializer
メソッドを使用し、XmlWriter
とシリアル化するオブジェクトをパラメーターとして指定します。
コード例:
シリアル化プロセスを示す簡潔な例は次のとおりです。
<code class="language-csharp">XmlSerializer xsSubmit = new XmlSerializer(typeof(MyObject)); MyObject subReq = new MyObject(); string xml; using (StringWriter sww = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sww)) { xsSubmit.Serialize(writer, subReq); xml = sww.ToString(); // Your XML string } }</code>
一般的なシリアル化:
柔軟性を高めるために、さまざまなオブジェクト タイプを処理できる汎用シリアライザー クラスを検討してください。
<code class="language-csharp">public class MySerializer<T> where T : class { public static string Serialize(T obj) { XmlSerializer xsSubmit = new XmlSerializer(typeof(T)); using (StringWriter sww = new StringWriter()) { using (XmlTextWriter writer = new XmlTextWriter(sww) { Formatting = Formatting.Indented }) { xsSubmit.Serialize(writer, obj); return sww.ToString(); } } } }</code>
汎用シリアライザーの使用:
<code class="language-csharp">string xmlMessage = MySerializer<MyClass>.Serialize(myObj);</code>
このアプローチは、さまざまなクラスのシリアル化プロセスを簡素化し、コードの再利用性を促進します。 MyClass
と myObj
を実際のクラス名とオブジェクト名に置き換えることを忘れないでください。 この包括的なガイドでは、C# オブジェクトを XML に効果的にシリアル化することができます。
以上がC#でオブジェクトをXMLにシリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。