Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menyahseri Objek daripada Rentetan XML Bersiri dalam C#?

Bagaimanakah Saya Boleh Menyahseri Objek daripada Rentetan XML Bersiri dalam C#?

DDD
DDDasal
2024-12-26 14:39:17876semak imbas

How Can I Deserialize an Object from a Serialized XML String in C#?

Menyahsiri Objek daripada Rentetan

Kaedah yang disediakan, SerializeObject, membolehkan pensirilan objek kepada fail. Untuk mendapatkan semula perwakilan XML objek sebagai rentetan, sedikit pengubahsuaian diperlukan.

Penyelesaian melibatkan menggantikan StreamWriter dengan 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();
    }
}

Kaedah GetType() digunakan dalam pembina XmlSerializer untuk memastikan bahawa semua kemungkinan subkelas T dipertimbangkan semasa bersiri.

Tidak seperti penggunaan typeof(T), GetType() meliputi semua subkelas, membenarkan kod untuk mengendalikan objek dengan warisan. Untuk mendapatkan maklumat lanjut dan contoh konkrit di mana typeof(T) menyebabkan isu, rujuk pautan berikut: http://ideone.com/1Z5J1.

Selain itu, perlu diperhatikan bahawa versi masa jalan .NET yang berbeza mungkin menjana mesej pengecualian yang berbeza apabila menghadapi ralat dengan typeof(T).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahseri Objek daripada Rentetan XML Bersiri dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn