ホームページ >バックエンド開発 >C++ >.NET 2.0で辞書メンバーを使用してクラスをシリアル化する方法は?

.NET 2.0で辞書メンバーを使用してクラスをシリアル化する方法は?

DDD
DDDオリジナル
2025-01-15 18:39:44709ブラウズ

.NET 2.0 でのディクショナリ メンバー クラスのシリアル化メソッドが含まれています

この記事は、ディクショナリ メンバーを含むクラスのシリアル化の問題に関する以前の議論を拡張したものです。このクラスには、guiPathconfigPathmappedDrives の 3 つの属性が含まれています。 mappedDrives は、ドライブ文字をネットワーク パスにマッピングする辞書です。

ただし、クラスをシリアル化または逆シリアル化すると、ユーザーは次のエラーを受け取ります:

メンバー App.Configfile.mappedDrives をシリアル化できません

このエラーは、何らかの理由で .NET 2.0 の汎用辞書が XML シリアル化できないために発生します。

解決策

この問題を解決するには、ユーザーはカスタムのシリアル化可能な辞書クラスを使用できます。 Paul Welter は自身のブログでそのようなクラスを提供しています:

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

このクラスは IXmlSerializable インターフェースを実装し、シリアル化および逆シリアル化できるようにします。ユーザーは、このカスタム辞書クラスをメイン クラスで使用できるようになります:

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

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

// ...</code>

これにより、クラスを正しくシリアル化および逆シリアル化できるようになります。

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

以上が.NET 2.0で辞書メンバーを使用してクラスをシリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。