Heim > Backend-Entwicklung > C++ > Wie serialisiere ich eine Klasse mit einem Wörterbuchmitglied in .NET 2.0?

Wie serialisiere ich eine Klasse mit einem Wörterbuchmitglied in .NET 2.0?

DDD
Freigeben: 2025-01-15 18:39:44
Original
707 Leute haben es durchsucht

Enthält Serialisierungsmethoden für Wörterbuch-Mitgliedsklassen unter .NET 2.0

Dieser Artikel erweitert eine frühere Diskussion zum Thema der Serialisierung von Klassen, die Wörterbuchmitglieder enthalten. Diese Klasse enthält drei Attribute: guiPath, configPath und mappedDrives. mappedDrives ist ein Wörterbuch, das Laufwerksbuchstaben Netzwerkpfaden zuordnet.

Beim Serialisieren oder Deserialisieren der Klasse erhält der Benutzer jedoch die folgende Fehlermeldung:

Mitglied App.Configfile.mappedDrives kann nicht serialisiert werden

Dieser Fehler tritt auf, weil generische Wörterbücher in .NET 2.0 aus irgendeinem Grund nicht XML-serialisierbar sind.

Lösung

Um dieses Problem zu lösen, können Benutzer eine benutzerdefinierte serialisierbare Wörterbuchklasse verwenden. Paul Welter bietet auf seinem Blog einen solchen Kurs an:

<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>
Nach dem Login kopieren

Diese Klasse implementiert die IXmlSerializable-Schnittstelle und ermöglicht so deren Serialisierung und Deserialisierung. Benutzer können dann diese benutzerdefinierte Wörterbuchklasse in ihrer Hauptklasse verwenden:

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

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

// ...</code>
Nach dem Login kopieren

Dies sollte eine korrekte Serialisierung und Deserialisierung der Klasse ermöglichen.

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

Das obige ist der detaillierte Inhalt vonWie serialisiere ich eine Klasse mit einem Wörterbuchmitglied in .NET 2.0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage