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
DDDOriginal
2025-01-15 18:39:44759Durchsuche

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>

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>

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!

Stellungnahme:
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