"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como serializar uma aula com os membros do dicionário no .NET 2.0?

Como serializar uma aula com os membros do dicionário no .NET 2.0?

Postado em 2025-04-13
Navegar:736

Método de serialização contendo classes de membros do dicionário em .NET 2.0

Este artigo estende uma discussão anterior sobre as classes de membros do dicionário serializador. Esta classe contém três propriedades: guipath , configpath e mapeddrives . mapedDrivs é um dicionário usado para mapear letras de unidade para caminhos de rede.

No entanto, ao serializar ou desapegar a classe, o usuário recebe o seguinte erro:

não pode serializar serialize o membro app.configfile.mappeddrives

esse erro ocorre por algum motivo de que o dicionário genérico no .net 2.0 não seja xml-serializada.

soluções

Para resolver esse problema, os usuários podem usar classes de dicionário serializável personalizadas. Paul Welter fornece uma aula como esta em seu blog:

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

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

Esta classe implementa a interface ixmlSerializable , permitindo que ela seja serializada e desserializada. O usuário pode usar esta classe de dicionário personalizada em sua classe principal:

// ...

public Dictionary mappedDrives = new SerializableDictionary();

// ...

isso deve permitir que a classe seja serializada e desserializada corretamente.

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

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3