Compartilhar via


Cache de dados

Você pode armazenar em cache os objetos de dados em uma personalização em nível de documento para que os dados podem ser acessados off-line ou sem abrir o Microsoft Office Word ou Excel de Microsoft Office. Armazenar em cache um objeto, o objeto deve ter um tipo de dados que atende a certos requisitos. Muitos tipos de dados comum do.NET Framework atender a esses requisitos, incluindo String, DataSet, e DataTable.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Há duas maneiras de adicionar um objeto para o cache de dados:

Depois de adicionar um objeto para o cache de dados, você pode acessar e modificar os dados em cache sem iniciar o Word ou Excel. For more information, see Acesso a dados em documentos no servidor.

Requisitos para os objetos de dados seja armazenada em cache

Em um objeto de dados em sua solução de cache, o objeto deve atender a esses requisitos:

  • Ser um campo de leitura/gravação pública ou a propriedade de um item de host, como o ThisDocument ou ThisWorkbook classes.

  • Não se um indexador ou outra propriedade com parâmetros.

Além disso, o objeto de dados deve ser serializável, o XmlSerializer classe, o que significa que o tipo de objeto deve ter as seguintes características:

  • Ser um tipo de público.

  • Ter um construtor público sem parâmetros.

  • Não execute o código que requer privilégios de segurança adicional.

  • Expor somente leitura/gravação propriedades públicas (outras propriedades serão ignoradas).

  • Não expor matrizes multidimensionais (matrizes aninhadas são aceitos).

  • Não retorne a interfaces de propriedades e campos.

  • Não implementa IDictionary se uma coleção.

Quando você armazena em cache um objeto de dados, o Visual Studio Tools for Office runtime serializa o objeto em uma cadeia XML que é armazenada em um parte XML personalizada no documento. For more information, see Visão geral de partes XML personalizada.

Limites de tamanho de dados em cache

Existem alguns limites para a quantidade total de dados, que você pode adicionar o cache de dados em um documento e o tamanho de qualquer objeto individual no cache de dados. Se você exceder esses limites, o aplicativo pode fechar inesperadamente quando os dados são salvos no cache de dados.

Para evitar esses limites, siga estas diretrizes:

  • Não adicione qualquer objeto mais de 10 MB para o cache de dados.

  • Não adicione mais de 100 MB de dados total para o cache de dados em um único documento.

Estes são valores aproximadas. Os limites exatos dependem de vários fatores, inclusive a RAM disponível e o número de processos em execução.

Controlar o comportamento de objetos em cache

Para obter mais controle sobre o comportamento de um objeto em cache, você pode implementar a ICachedType interface no tipo de objeto em cache. Por exemplo, você pode implementar essa interface, se você desejar controlar como o usuário é notificado quando o objeto foi alterado. Para obter exemplos de código que demonstram como implementar ICachedType, consulte a ControlCollection classe no exemplo de controles dinâmicos do Excel e Word exemplo de controles dinâmicos no Exemplos de desenvolvimento do Office e Walkthroughs.

Mantendo alterações aos dados em cache em documentos protegidos por senha

Se o cache de objetos de dados em um documento que está protegido com uma senha, as alterações dos dados em cache não são salvas. Você pode salvar as alterações aos dados em cache, substituindo os dois métodos. Substituir esses métodos para remover temporariamente a proteção quando o documento é salvo e reaplique a proteção após salvar operação seja concluída.

For more information, see Como: Cache de dados em um documento protegido por senha.

Prevenção de perda de dados ao adicionar valores nulos para o Cache de dados

Quando você adiciona objetos para o cache de dados, todos os objetos em cache devem ser inicializados para um não-null valor antes que o documento for salvo e fechado. Se qualquer objeto em cache tem um null valor quando o documento é salvo e fechado, o Visual Studio Tools for Office runtime removerá automaticamente todos os objetos em cache do cache de dados.

Se você adicionar um objeto com um null valor para o cache de dados usando o CachedAttribute atributo em tempo de design, você pode usar o ServerDocument classe para inicializar os dados em cache objetos antes de abrir o documento. Isso é útil se você deseja inicializar os dados em cache em um servidor sem o Word ou Excel instalado, antes que o documento é aberto por um usuário final. For more information, see Acesso a dados em documentos no servidor.

Consulte também

Tarefas

Como: Cache de dados para uso off-line ou em um servidor

Como: Cache programaticamente uma fonte de dados em um documento do Office

Como: Cache de dados em um documento protegido por senha

Demonstra Passo a passo: Criar uma relação mestre/detalhes usando um Dataset em cache