ホームページ >バックエンド開発 >C++ >C# でオブジェクトを XML 文字列にシリアル化するにはどうすればよいですか?

C# でオブジェクトを XML 文字列にシリアル化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-03 14:56:39320ブラウズ

How Can I Serialize an Object to an XML String in C#?

オブジェクトを文字列にシリアル化する

問題

Xml シリアル化を使用してオブジェクトをファイルにシリアル化する既存のメソッドを、返されるように変更する必要があります。 XML をファイルに保存するのではなく、文字列として保存します。 file.

解決策

オブジェクトをファイルに書き込む代わりに文字列としてシリアル化するには、単に StreamWriter を StringWriter に置き換えます。変更されたメソッドは次のとおりです。

public static string SerializeObject<T>(this T toSerialize)
{
    XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());

    using(StringWriter textWriter = new StringWriter())
    {
        xmlSerializer.Serialize(textWriter, toSerialize);
        return textWriter.ToString();
    }
}

考慮事項

XmlSerializer コンストラクターで typeof(T) の代わりに toSerialize.GetType() を使用することが重要です。 toSerialize.GetType() を使用すると、T のすべての可能なサブクラスが正しく処理されるようになりますが、typeof(T) を使用すると、派生型が引数として渡された場合に例外が発生する可能性があります。

以上がC# でオブジェクトを XML 文字列にシリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。