Condividi tramite


Memorizzazione di dati nella cache

Aggiornamento: Luglio 2008

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

Versione Microsoft Office

  • Microsoft Office System 2007

  • Microsoft Office 2003

Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazione.

Gli oggetti dati possono essere memorizzati nella cache di una personalizzazione a livello di documento in modo da poter accedere ai dati anche in modalità non in linea o senza dover aprire Microsoft Office Word o Microsoft Office Excel. Un oggetto, per poter essere memorizzato nella cache, deve disporre di un tipo di dati che soddisfa alcuni requisiti. Molti tipi di dati comuni in .NET Framework soddisfano questi requisiti, compresi String, DataSet e DataTable.

Un oggetto può essere aggiunto alla cache di dati in due modi:

Dopo aver aggiunto un oggetto alla cache di dati, è possibile accedere e modificare i dati memorizzati nella cache senza dover avviare Word o Excel. Per ulteriori informazioni, vedere la classe Accesso ai dati dei documenti sul server.

Requisiti per gli oggetti dati da memorizzare nella cache

Se si desidera memorizzare nella cache istanze di tipi di dati personalizzati, questi ultimi devono soddisfare i requisiti seguenti:

  • Essere un campo pubblico di lettura/scrittura o una proprietà di un elemento host, ad esempio le classi ThisDocument o ThisWorkbook.

  • Non deve essere un indicizzatore o un altro tipo di proprietà con parametri.

In aggiunta, l'oggetto dati deve essere serializzabile dalla classe XmlSerializer, il che indica che deve avere le caratteristiche seguenti:

  • Deve essere di tipo pubblico.

  • Deve avere un costruttore pubblico senza parametri.

  • Non deve eseguire codice che richieda privilegi di protezione aggiuntivi.

  • Deve esporre solo proprietà di lettura/scrittura pubbliche (le altre proprietà verranno ignorate).

  • Non deve esporre matrici multidimensionali (sono accettate le matrici nidificate).

  • Non deve restituire interfacce da proprietà e campi.

  • Non deve implementare IDictionary, se si tratta di un insieme.

Controllo del comportamento degli oggetti memorizzati nella cache

Per ottenere un maggiore controllo sul comportamento di un oggetto memorizzato nella cache, è possibile implementare l'interfaccia ICachedType nel tipo dell'oggetto memorizzato nella cache. Questa interfaccia, ad esempio, può essere implementata quando si desidera controllare la modalità di notifica degli utenti al variare dell'oggetto. Per esempi di codice in cui viene illustrato come implementare l'oggetto ICachedType, vedere la classe ControlCollection nelle applicazioni di esempio seguenti:

Salvataggio permanente delle modifiche apportate ai dati memorizzati nella cache dei documenti protetti da password

Nei progetti a livello di documento per Word 2007 ed Excel 2007, se si memorizzano nella cache gli oggetti dati di un documento protetto con una password, le modifiche apportate ai dati memorizzati nella cache non vengono salvate. A partire da Visual Studio 2008 Service Pack 1 (SP1), è possibile salvare le modifiche apportate ai dati memorizzati nella cache eseguendo l'override di due metodi. Eseguire l'override di questi metodi per rimuovere temporaneamente la protezione durante il salvataggio del documento, quindi riapplicare la protezione al termine dell'operazione di salvataggio.

Per ulteriori informazioni, vedere la classe Procedura: memorizzare dati nella cache di un documento protetto da password.

Esclusione della perdita di dati in caso di aggiunta di valori null alla cache di dati

Gli oggetti aggiunti alla cache di dati devono essere inizializzati su un valore non null prima che il documento venga salvato e chiuso. Se un oggetto memorizzato nella cache dispone di un valore null quando il documento viene salvato e chiuso, il runtime di Visual Studio Tools per Office rimuoverà automaticamente tutti gli oggetti memorizzati dalla cache di dati.

Se si aggiunge un oggetto con un valore null alla cache di dati mediante l'attributo CachedAttribute in fase di progettazione, è possibile utilizzare la classe ServerDocument per inizializzare gli oggetti dati contenuti nella cache prima che il documento venga aperto. Tale operazione si rivela utile se si desidera inizializzare i dati memorizzati nella cache in un server senza avere a disposizione Word o Excel, prima che il documento venga aperto da un utente finale. Per ulteriori informazioni, vedere la classe Accesso ai dati dei documenti sul server.

Modalità di salvataggio dei dati memorizzati nella cache nel documento

Quando si memorizza nella cache un oggetto dati in un documento, il runtime di Visual Studio Tools per Office serializza l'oggetto in una stringa XML memorizzata nel documento. La modalità di memorizzazione della stringa XML nel documento dipende dalla versione di Microsoft Office con la quale la soluzione funziona:

  • Nelle personalizzazioni per Microsoft Office 2003, il runtime di Visual Studio Tools per Office memorizza la stringa XML nel controllo Runtime Storage. Il controllo Runtime Storage è un controllo ActiveX che è incorporato nel documento. Per ulteriori informazioni, vedere la classe Cenni preliminari sul controllo Runtime Storage.

  • Nelle personalizzazioni per Microsoft Office System 2007, il runtime di Visual Studio Tools per Office memorizza la stringa XML in una web part XML personalizzata nel documento. Per ulteriori informazioni, vedere la classe Cenni preliminari sulle web part XML personalizzate.

Vedere anche

Attività

Procedura: memorizzare dati nella cache per l'utilizzo non in linea o su un server

Procedura: memorizzare nella cache a livello di codice un'origine dati di un documento di Office

Procedura: interrompere la memorizzazione nella cache a livello di codice di un'origine dati

Procedura: memorizzare dati nella cache di un documento protetto da password

Procedura dettagliata: creazione di una relazione master-dettagli mediante un DataSet memorizzato nella cache

Cronologia delle modifiche

Date

History

Motivo

Luglio 2008

Aggiunte informazioni sulla memorizzazione di dati nella cache di documenti protetti da password.

Modifica di funzionalità in SP1.