Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo explica o mecanismo de serialização fornecido no Microsoft Foundation Class Library (MFC) para permitir que os objetos persistam entre as execuções do seu programa.
A serialização é o processo de escrever ou ler um objeto de ou para um meio de armazenamento persistente, como um arquivo de disco. A serialização é ideal para situações em que se deseja manter o estado de dados estruturados (como classes ou estruturas C++) durante ou após a execução de um programa. O uso dos objetos de serialização fornecidos pelo MFC permite que isso ocorra de maneira padrão e consistente, aliviando o usuário da necessidade de executar operações de arquivo manualmente.
MFC fornece suporte interno para serialização na classe CObject. Assim, todas as classes derivadas de CObject podem tirar proveito do protocolo de serialização de CObject.
A idéia básica da serialização é que um objeto deve ser capaz de escrever seu estado atual, geralmente indicado pelo valor de suas variáveis membro, no armazenamento persistente. Mais tarde, o objeto pode ser recriado lendo ou desserializando o estado do objeto do armazenamento. A serialização lida com todos os detalhes de ponteiros de objeto e referências circulares a objetos que são usados quando você serializa um objeto. Um ponto-chave é que o próprio objeto é responsável por ler e escrever seu próprio estado. Assim, para que uma classe seja serializável, ela deve implementar as operações básicas de serialização. Como mostrado no grupo de artigos Serialização, é fácil adicionar essa funcionalidade a uma classe.
MFC usa um objeto da classe como um intermediário entre o objeto a ser serializado CArchive e o meio de armazenamento. Este objeto é sempre associado a um CFile objeto, a partir do qual obtém as informações necessárias para a serialização, incluindo o nome do arquivo e se a operação solicitada é uma leitura ou gravação. O objeto que executa uma operação de serialização pode usar o CArchive objeto sem considerar a natureza do meio de armazenamento.
Um CArchive objeto usa operadores de inserção (<<) e extração (>>) sobrecarregados para executar operações de escrita e leitura. Para obter mais informações, consulte Armazenando e carregando CObjects por meio de um arquivo no artigo Serialização: serializando um objeto.
Observação
Não confunda a CArchive classe com classes iostream de uso geral, que são apenas para texto formatado. A CArchive classe é para objetos serializados de formato binário.
Se desejar, você pode ignorar a serialização MFC para criar seu próprio mecanismo de armazenamento de dados persistente. Você terá de sobrepor as funções de membro da classe que iniciam a serialização quando o usuário o solicitar. Veja a discussão na Nota Técnica 22 dos comandos padrão ID_FILE_OPEN, ID_FILE_SAVE e ID_FILE_SAVE_AS.
Os artigos a seguir abrangem as duas principais tarefas necessárias para a serialização:
O artigo Serialization: Serialization vs. Database Input/Output descreve quando a serialização é uma técnica de entrada/saída apropriada em aplicativos de banco de dados.
Ver também
Conceitos
Tópicos gerais do MFC
Classe CArchive
CObject Classe
CDocument Classe
CFile Classe