Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mensiri Kelas dengan Ahli Kamus dalam .NET 2.0?

Bagaimana untuk Mensiri Kelas dengan Ahli Kamus dalam .NET 2.0?

DDD
Lepaskan: 2025-01-15 18:39:44
asal
707 orang telah melayarinya

Mengandungi kaedah bersiri untuk kelas ahli kamus di bawah .NET 2.0

Artikel ini melanjutkan perbincangan sebelum ini tentang isu penyirian kelas yang mengandungi ahli kamus. Kelas ini mengandungi tiga atribut: guiPath, configPath dan mappedDrives. mappedDrives ialah kamus memetakan huruf pemacu ke laluan rangkaian.

Walau bagaimanapun, apabila mensiri atau menyahsiri kelas, pengguna menerima ralat berikut:

Tidak dapat menyerikan App.Configfile.mappedDrives ahli

Ralat ini berlaku kerana atas sebab tertentu, kamus generik dalam .NET 2.0 tidak boleh bersiri XML.

Penyelesaian

Untuk menyelesaikan masalah ini, pengguna boleh menggunakan kelas kamus boleh bersiri tersuai. Paul Welter menyediakan kelas sedemikian di blognya:

<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

[XmlRoot("dictionary")]
public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable
{
    // 部分代码省略 ...
}</code>
Salin selepas log masuk

Kelas ini melaksanakan antara muka IXmlSerializable, membolehkan ia disiri dan dinyahsiri. Pengguna kemudiannya boleh menggunakan kelas kamus tersuai ini dalam kelas utama mereka:

<code class="language-csharp">// ...

public Dictionary<string, string> mappedDrives = new SerializableDictionary<string, string>();

// ...</code>
Salin selepas log masuk

Ini sepatutnya membenarkan kelas disiri dan dinyahsiri dengan betul.

How to Serialize a Class with a Dictionary Member in .NET 2.0?

Atas ialah kandungan terperinci Bagaimana untuk Mensiri Kelas dengan Ahli Kamus dalam .NET 2.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan