Condividi tramite


Dati cache

È possibile memorizzare nella cache gli oggetti dati in una personalizzazione a livello di documento in modo che i dati siano accessibili offline o senza aprire Microsoft Office Word o Microsoft Office Excel. Per memorizzare nella cache un oggetto, l'oggetto deve avere un tipo di dati che soddisfi determinati requisiti. Molti tipi di dati comuni in .NET Framework soddisfano questi requisiti, tra cui String, DataSete DataTable.

Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento per Excel e Word. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.

Esistono due modi per aggiungere un oggetto alla cache dei dati:

Requisiti per gli oggetti dati da memorizzare nella cache

Per memorizzare nella cache un oggetto dati nella soluzione, l'oggetto deve soddisfare questi requisiti:

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

  • Non essere un indicizzatore o un'altra proprietà con parametri.

    Inoltre, l'oggetto dati deve essere serializzabile dalla XmlSerializer classe , il che significa che il tipo dell'oggetto deve avere queste caratteristiche:

  • Essere un tipo pubblico.

  • Disporre di un costruttore pubblico senza parametri.

  • Non eseguire codice che richiede privilegi di sicurezza aggiuntivi.

  • Esporre solo proprietà pubbliche di lettura/scrittura (altre proprietà verranno ignorate).

  • Non esporre matrici multidimensionali (sono accettate matrici annidate).

  • Non restituiscono interfacce da proprietà e campi.

  • Non implementare IDictionary se una raccolta.

    Quando si memorizza nella cache un oggetto dati, la Strumenti di Visual Studio per il runtime di Office serializza l'oggetto in una stringa XML archiviata in una parte XML personalizzata nel documento. Per altre informazioni, vedere Panoramica delle parti XML personalizzate.

Limiti delle dimensioni dei dati memorizzati nella cache

Esistono alcuni limiti alla quantità totale di dati che è possibile aggiungere alla cache dei dati in un documento e alle dimensioni di qualsiasi singolo oggetto nella cache dei dati. Se si superano questi limiti, l'applicazione potrebbe chiudersi in modo imprevisto quando i dati vengono salvati nella cache dei dati.

Per evitare questi limiti, seguire queste linee guida:

  • Non aggiungere alcun oggetto maggiore di 10 MB alla cache dei dati.

  • Non aggiungere più di 100 MB di dati totali alla cache dei dati in un singolo documento.

    Si tratta di valori approssimativi. I limiti esatti dipendono da diversi fattori, tra cui la RAM disponibile e il numero di processi in esecuzione.

Controllare il comportamento degli oggetti memorizzati nella cache

Per ottenere un maggiore controllo sul comportamento di un oggetto memorizzato nella cache, è possibile implementare l'interfaccia ICachedType sul tipo dell'oggetto memorizzato nella cache. Ad esempio, è possibile implementare questa interfaccia se si vuole controllare la modalità di notifica dell'utente quando l'oggetto è stato modificato. Per esempi di codice che illustrano come implementare ICachedType, vedere la ControlCollection classe nell'esempio di controlli dinamici di Excel e nell'esempio di controlli dinamici di Word negli esempi di sviluppo di Office e procedure dettagliate.

Rendere persistenti le modifiche ai dati memorizzati nella cache nei documenti protetti da password

Se si memorizzano nella cache gli oggetti dati in un documento protetto con una password, le modifiche ai dati memorizzati nella cache non vengono salvate. È possibile salvare le modifiche ai dati memorizzati nella cache eseguendo l'override di due metodi. Eseguire l'override di questi metodi per rimuovere temporaneamente la protezione quando il documento viene salvato e quindi riapplicare la protezione al termine dell'operazione di salvataggio.

Per altre informazioni, vedere Procedura: Memorizzare nella cache i dati in un documento protetto da password.

Evitare la perdita di dati quando si aggiungono valori Null alla cache dei dati

Quando si aggiungono oggetti alla cache dei dati, tutti gli oggetti memorizzati nella cache devono essere inizializzati in un valore non Null prima che il documento venga salvato e chiuso. Se un oggetto memorizzato nella cache ha un valore Null quando il documento viene salvato e chiuso, il Strumenti di Visual Studio per il runtime di Office rimuoverà automaticamente tutti gli oggetti memorizzati nella cache dei dati.

Se si aggiunge un oggetto con un valore Null alla cache dei dati usando l'attributo in fase di progettazione, è possibile utilizzare la ServerDocument classe per inizializzare gli oggetti dati memorizzati nella cache prima dell'apertura CachedAttribute del documento. Ciò è utile se si desidera inizializzare i dati memorizzati nella cache in un server senza Word o Excel installato, prima che il documento venga aperto da un utente finale. Per altre informazioni, vedere Accedere ai dati nei documenti nel server.