Serialização no MFC
Este artigo explica o mecanismo de serialização fornecido no Microsoft Foundation classe biblioteca (MFC) para permitir que objetos persistem entre executa do seu programa.
Serialização é o processo de gravar ou ler um objeto para ou de uma meio de armazenamento persistente, sistema autônomo um arquivo do disco.A serialização é ideal para situações em que desejar para manter o estado de dados estruturados (sistema autônomo C++ classes ou estruturas) durante ou após a execução de um programa.Usar 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 no classe CObject. Assim, todas as classes derivadas de CObject pode se beneficiar do CObjectdo protocolo de serialização.
A idéia básica de serialização é que um objeto deve ser capaz de gravar seu estado corrente, normalmente indicado pelo valor de suas variáveis de membro, para armazenamento persistente.Posteriormente, o objeto pode ser recriado lendo ou desserialização de estado do objeto do armazenamento.Serialização lida com todos os detalhes do objeto ponteiros e referências circulares a objetos que são usadas ao serializar um objeto.Um ponto importante é que o próprio objeto é responsável por ler e gravar seu próprio estado.Portanto, para uma classe serializável, ele deve implementar as operações de serialização básica.sistema autônomo mostra o agrupar de serialização de artigos, é fácil adicionar essa funcionalidade a uma classe.
MFC usa um objeto do CArchive classe sistema autônomo um intermediário entre o objeto para ser serializado e a meio de armazenamento. Este objeto está sempre associado a um CFile objeto, a partir do qual ele obtém as informações necessárias para a serialização, incluindo nome de arquivo e se a operação solicitada é uma leitura ou gravar. O objeto que executa uma operação de serialização pode usar o CArchive objeto sem relação à natureza da meio de armazenamento.
A CArchive objeto usa (inserção sobrecarregados**<<) e a extração (>>**) operadores para executar a gravação e as operações de leitura.Para obter mais informações, consulte Armazenar e carregando CObjects por meio de um arquivar no artigo serialização: Serializando um objeto.
Observação: |
---|
Não confunda o CArchive classe com classes iostream uso geral, que são de somente texto formatado. The CArchive classe é para objetos serializados em formato binário. |
Se desejar, você pode ignorar o 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 a serialização de comando do usuário.Consulte a discussão em Observação técnica 22 of the ID_FILE_OPEN, ID_FILE_SAVE, and ID_FILE_SAVE_AS comandos padrão.
Os seguintes artigos abordam as duas tarefas principais necessárias para a serialização:
O artigo Serialização: Serialização versus banco de dados de entrada/saída descreve quando a serialização é uma técnica de entrada/saída apropriada em aplicativos de banco de dados.