Compartir a través de


Almacenar datos en caché

Actualización: Julio de 2008

Se aplica a

La información de este tema sólo se aplica a los proyectos y versiones especificados de Visual Studio Tools para Office de Microsoft Office.

Tipo de proyecto

  • Proyectos de nivel de documento

Versión de Microsoft Office

  • Microsoft Office System 2007

  • Microsoft Office 2003

Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto.

Puede almacenar en la memoria caché los objetos de datos de una personalización en el nivel del documento para tener acceso a los datos sin conexión o sin abrir Microsoft Office Word ni Microsoft Office Excel. Para almacenar un objeto en la memoria caché, el objeto debe tener un tipo de datos que cumpla ciertos requisitos. Muchos tipos de datos comunes en .NET Framework cumplen estos requisitos, incluyendo String, DataSet y DataTable.

Hay dos maneras de agregar un objeto a la memoria caché de datos:

Después de agregar un objeto a la memoria caché de datos, puede obtener acceso y modificar los datos almacenados en memoria caché sin iniciar Word ni Excel. Para obtener más información, vea Acceso a datos de documentos en el servidor.

Requisitos para almacenar objetos de datos en caché

Si desea almacenar en memoria caché instancias de tipos de datos que cree, los tipos de datos deben cumplir estos requisitos:

  • Debe ser un campo o una propiedad públicos de lectura y escritura de un elemento host, como las clases ThisDocument o ThisWorkbook.

  • No debe ser un indizador ni otra propiedad parametrizada.

Además, el objeto de datos debe ser serializable por la clase XmlSerializer, lo que significa que debe tener estas características:

  • Debe ser un tipo público.

  • Debe contar con un constructor público sin parámetros.

  • No deje ejecutar código que requiera privilegios de seguridad adicionales.

  • Sólo debe exponer propiedades públicas de lectura y escritura (se omitirán otras propiedades).

  • No debe exponer matrices multidimensionales (se aceptan matrices anidadas).

  • No debe devolver interfaces de propiedades y campos.

  • No implemente IDictionary si es una colección.

Controlar el comportamiento de objetos almacenados en memoria caché

Para controlar mejor el comportamiento de un objeto almacenado en la memoria caché, puede implementar la interfaz ICachedType en el tipo del objeto almacenado en la memoria caché. Por ejemplo, puede implementar esta interfaz si desea controlar cómo se notifica al usuario un cambio en el objeto. Para obtener ejemplos de código que muestren cómo implementar ICachedType, vea la clase ControlCollection en las siguientes aplicaciones de ejemplo:

Conservar los cambios hechos en datos almacenados en memoria caché en documentos protegidos mediante contraseña

En proyectos en el nivel del documento para Word 2007 y Excel 2007, si almacena en memoria caché los objetos de datos de un documento que se protege con contraseña, no se guardan los cambios efectuados en los datos almacenados en la memoria caché. A partir de Visual Studio 2008 Service Pack 1 (SP1), puede guardar los cambios efectuados en los datos almacenados en memoria caché invalidando dos métodos. Invalide estos métodos para quitar temporalmente la protección cuando se guarda el documento y, a continuación, vuelva a aplicar la protección una vez completada la operación de guardado.

Para obtener más información, vea Cómo: Almacenar datos en caché en un documento protegido por contraseña.

Evitar la pérdida de datos cuando se agregan valores nulos a la memoria caché de datos

Cuando se agregan objetos a la memoria caché de datos, todos los objetos deben inicializarse en un valor que no sea null antes de guardar y cerrar el documento. Si algún objeto de la memoria caché tiene un valor null cuando se guarda y se cierra el documento, el motor en tiempo de ejecución de Visual Studio Tools para Office quitará automáticamente todos los objetos de la memoria caché de datos.

Si agrega un objeto con un valor null a la memoria caché de datos mediante el atributo CachedAttribute en tiempo de diseño, puede usar la clase ServerDocument para inicializar los objetos de la memoria caché antes de abrir el documento. Esto es útil si desea inicializar los datos almacenados en la memoria caché en un servidor donde no está instalado Word ni Excel, antes de que un usuario final abra el documento. Para obtener más información, vea Acceso a datos de documentos en el servidor.

Cómo se almacenan los datos de la memoria caché en el documento

Cuando se almacena en la memoria caché un objeto de datos en un documento, el tiempo de ejecución de Visual Studio Tools para Office serializa el objeto en una cadena XML que se almacena en el documento. La manera en que la cadena XML se almacena en el documento depende de la versión de Microsoft Office con la que funciona la solución:

Vea también

Tareas

Cómo: Almacenar datos en la memoria caché para el uso sin conexión o en un servidor

Cómo: Almacenar en memoria caché un origen de datos de un documento de Office mediante programación

Cómo: Dejar de almacenar en caché un origen de datos mediante programación

Cómo: Almacenar datos en caché en un documento protegido por contraseña

Tutorial: Crear una relación principal-detalle utilizando un conjunto de datos almacenado en caché

Historial de cambios

Fecha

Historial

Motivo

Julio de 2008

Información agregada sobre cómo almacenar en memoria caché datos de documentos protegidos mediante contraseña.

Cambio de características de SP1.