C# で XmlSerializer を使用してオブジェクトを XML にシリアル化します
この記事では、C# でオブジェクトを XML 表現に変換する方法について説明します。オブジェクトがシリアル化可能に構成されている場合、このプロセスは非常に簡単です。この記事では、特にクラスが継承されている場合に、クラスで XML シリアル化を実行する方法を示し、汎用クラスのシリアル化について説明します。
XmlSerializer を使用する
オブジェクトを XML にシリアル化するには、XmlSerializer
クラスを使用する必要があります。次のコード スニペットは、o
という名前の MyObject
型のオブジェクトをシリアル化する方法を示しています。
<code class="language-csharp">XmlSerializer xsSubmit = new XmlSerializer(typeof(MyObject)); MyObject subReq = new MyObject(); string xml = ""; using (var sww = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sww)) { xsSubmit.Serialize(writer, subReq); xml = sww.ToString(); } }</code>このコードは、
オブジェクトの XML 表現を作成し、それを subReq
変数に割り当てます。 xml
汎用クラスのシリアル化
さまざまなクラスのオブジェクトをシリアル化する必要がある場合は、以下に示すように、シリアル化ロジックをカプセル化する汎用クラスを作成できます。この汎用クラスを使用するには、
<code class="language-csharp">public class MySerializer<T> where T : class { public static string Serialize(T obj) { XmlSerializer xsSubmit = new XmlSerializer(typeof(T)); using (var sww = new StringWriter()) { using (XmlTextWriter writer = new XmlTextWriter(sww) { Formatting = Formatting.Indented }) { xsSubmit.Serialize(writer, obj); return sww.ToString(); } } } }</code>メソッドを呼び出し、シリアル化するオブジェクトを指定するだけです:
Serialize
<code class="language-csharp">string xmlMessage = MySerializer<MyClass>.Serialize(myObj);</code>
以上がXmlSerializer を使用して C# でオブジェクトを XML にシリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。