Serialização no MFC
Este artigo explica o mecanismo de serialização fornecido no Microsoft Foundation Class Library (MFC) para permitir que objetos persistirem entre executa do seu programa.
Serialização é o processo de gravação ou leitura de um objeto para ou de uma mídia de armazenamento persistente, como um arquivo de disco.A serialização é ideal para situações onde é necessário para manter o estado dos dados estruturados (como C++ classes ou estruturas) durante ou após a execução de um programa.Os objetos de serialização fornecidos pelo MFC permite que isso ocorra de uma forma consistente e padrão, liberando o usuário da necessidade de realizar operações de arquivo manualmente.
MFC fornece suporte interno para serialização na classe CObject.Assim, todas as classes derivadas de CObject pode tirar proveito de CObjectdo protocolo de serialização.
A idéia básica de serialização é que um objeto deve ser capaz de gravar o estado atual, normalmente indicado pelo valor do suas variáveis de membro, para armazenamento persistente.Posteriormente, o objeto pode ser recriado por leitura ou desserialização, o estado do objeto do armazenamento.Serialização trata todos os detalhes de ponteiros de objeto e referências circulares para objetos que são usadas ao serializar um objeto.Um ponto importante é que o próprio objeto é responsável por ler e escrever seu próprio estado.Assim, para uma classe serializável, ele deve implementar as operações de serialização básica.Como mostrado no grupo de serialização de artigos, é fácil adicionar essa funcionalidade em uma classe.
MFC usa um objeto de CArchive classe como um intermediário entre o objeto a ser serializado e a mídia de armazenamento.Este objeto está sempre associado a um CFile objeto do qual ele 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 da mídia de armazenamento.
A CArchive objeto usa inserção sobrecarregada (<<) e extração (>>) operadores para executar a gravação e leitura de operações.Para obter mais informações, consulte Storing e carregando CObjects via um arquivamento no artigo serialização: serializar um objeto.
Observação |
---|
Não confunda o CArchive classe com classes de iostream de uso geral, são para formato somente texto.O CArchive classe é para objetos serializados em formato binário. |
Se desejar, você pode ignorar serialização MFC para criar seu próprio mecanismo de armazenamento de dados persistentes.Você precisará substituir as funções de membro de classe que iniciam serialização no comando do usuário.Consulte a discussão em técnico 22 anotação do ID_FILE_OPEN, ID_FILE_SAVE, e ID_FILE_SAVE_AS comandos padrão.
Os artigos a seguir abordam as duas tarefas principais necessárias para a serialização:
O artigo serialização: serialização vs. Entrada e saída de banco de dados descreve quando serialização é uma técnica de entrada/saída apropriada em aplicativos de banco de dados.