«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как сериализовать класс с членами словаря в .net 2.0?

Как сериализовать класс с членами словаря в .net 2.0?

Опубликовано в 2025-04-13
Просматривать:119

Метод сериализации, содержащий классы членов словаря по .net 2.0

]

Эта статья расширяет предыдущее обсуждение классов членов сериализации словаря. Этот класс содержит три свойства: guipath , configpath и mapeddrives . mapeddrives - это словарь, используемый для картирования букв привода в сетевые пути.

]

, однако, при сериализации или десеризации класса пользователь получает следующую ошибку:

]
]

не может сериализовать участник app.configfile.mappeddrives

]
]

Эта ошибка возникает по какой-то причине, что общий словарь в .net 2.0 не является XML-сериализованной.

]

solutions

]

, чтобы решить эту проблему, пользователи могут использовать пользовательские сериализуемые классы словаря. Пол Уэлтер предоставляет такой класс в своем блоге:

]
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

[XmlRoot("dictionary")]
public class SerializableDictionary : Dictionary, IXmlSerializable
{
    // 部分代码省略 ...
}

Этот класс реализует интерфейс ixmlSerializable , позволяющий он сериализован и десериализован. Пользователь может затем использовать этот пользовательский класс словаря в своем основном классе:

]
// ...

public Dictionary mappedDrives = new SerializableDictionary();

// ...

это должно позволить классу быть сериализованными и десериализованными правильно.

]

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3