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

Wie serialisiere ich eine Klasse mit einem Wörterbuchmitglied in C#?

Barbara Streisand
Barbara StreisandOriginal
2025-01-15 18:41:45181Durchsuche

How to Serialize a Class with a Dictionary Member in C#?

C#-Klassenserialisierung mit Wörterbuchmitgliedern

Beim Versuch, eine Klasse zu serialisieren, die Wörterbuchmitglieder enthält, wird möglicherweise eine Fehlermeldung ähnlich der „Unable to serialize member App.Configfile.mappedDrives“ angezeigt. Obwohl Wörterbücher serialisiert werden können, kann dieses Problem dennoch auftreten.

Um dieses Problem zu lösen, können Sie die Verwendung der XML-serialisierbaren generischen Wörterbuchlösung in Betracht ziehen, die von Paul Welters Weblog bereitgestellt wird. Generische Wörterbücher in .NET 2.0 sind nicht XML-serialisierbar. Das Code-Snippet von Welter bietet eine Lösung, indem es die IXmlSerializable-Schnittstelle implementiert, um das Wörterbuch serialisierbar zu machen.

Hier ist der bereitgestellte Code:

<code class="language-csharp">[XmlRoot("dictionary")]
public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable
{
    // ...
}</code>

Durch die Implementierung der Methoden ReadXml und WriteXml kann diese benutzerdefinierte Wörterbuchklasse Schlüssel-Wert-Paare serialisieren und deserialisieren. Dieses benutzerdefinierte Wörterbuch kann verwendet werden, um das Standardwörterbuch in der ConfigFile-Klasse zu ersetzen und Serialisierungsprobleme zu lösen.

Das obige ist der detaillierte Inhalt vonWie serialisiere ich eine Klasse mit einem Wörterbuchmitglied in C#?. 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