Dane pamięci podręcznej
Obiekty danych można buforować w dostosowywaniu na poziomie dokumentu, aby uzyskać dostęp do danych w trybie offline lub bez otwierania programu Microsoft Office Word lub Microsoft Office Excel. Aby buforować obiekt, obiekt musi mieć typ danych spełniający określone wymagania. Wiele typowych typów danych w programie .NET Framework spełnia te wymagania, w tym String, DataSeti DataTable.
Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu dla programów Excel i Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Istnieją dwa sposoby dodawania obiektu do pamięci podręcznej danych:
Aby dodać obiekt do pamięci podręcznej danych podczas kompilowania rozwiązania, zastosuj CachedAttribute atrybut do deklaracji obiektu. Aby uzyskać więcej informacji, zobacz Jak buforować dane do użycia w trybie offline lub na serwerze.
Aby programowo dodać obiekt do pamięci podręcznej danych w czasie wykonywania, użyj
StartCaching
metody elementu hosta, takiej jakThisDocument
klasy lubThisWorkbook
. Aby uzyskać więcej informacji, zobacz Instrukcje: Programowe buforowanie źródła danych w dokumencie pakietu Office.Po dodaniu obiektu do pamięci podręcznej danych można uzyskać dostęp do buforowanych danych i zmodyfikować je bez uruchamiania programu Word lub Excel. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do danych w dokumentach na serwerze.
Wymagania dotyczące buforowania obiektów danych
Aby buforować obiekt danych w rozwiązaniu, obiekt musi spełniać następujące wymagania:
Być polem publicznym odczytu/zapisu lub właściwością elementu hosta, na przykład
ThisDocument
klasami lubThisWorkbook
.Nie jest indeksatorem ani inną właściwością sparametryzowaną.
Ponadto obiekt danych musi być serializowalny przez klasę XmlSerializer , co oznacza, że typ obiektu musi mieć następujące cechy:
Być typem publicznym.
Nie ma publicznego konstruktora bez parametrów.
Nie wykonuj kodu wymagającego dodatkowych uprawnień zabezpieczeń.
Uwidaczniaj tylko właściwości publiczne odczytu/zapisu (inne właściwości zostaną zignorowane).
Nie uwidaczniaj tablic wielowymiarowych (zagnieżdżone tablice są akceptowane).
Nie zwracaj interfejsów z właściwości i pól.
Nie implementuj IDictionary , jeśli kolekcja.
Podczas buforowania obiektu danych środowisko uruchomieniowe Visual Studio Tools dla pakietu Office serializuje obiekt do ciągu XML przechowywanego w niestandardowej części XML w dokumencie. Aby uzyskać więcej informacji, zobacz Omówienie niestandardowych części XML.
Limity rozmiaru danych w pamięci podręcznej
Istnieją pewne ograniczenia dotyczące całkowitej ilości danych, które można dodać do pamięci podręcznej danych w dokumencie oraz do rozmiaru dowolnego pojedynczego obiektu w pamięci podręcznej danych. Jeśli przekroczysz te limity, aplikacja może zostać nieoczekiwanie zamknięta, gdy dane zostaną zapisane w pamięci podręcznej danych.
Aby uniknąć tych limitów, postępuj zgodnie z następującymi wytycznymi:
Nie należy dodawać żadnego obiektu większego niż 10 MB do pamięci podręcznej danych.
Nie dodawaj więcej niż 100 MB całkowitej ilości danych do pamięci podręcznej danych w jednym dokumencie.
Są to przybliżone wartości. Dokładne limity zależą od kilku czynników, w tym dostępnej pamięci RAM i liczby uruchomionych procesów.
Kontrolowanie zachowania buforowanych obiektów
Aby uzyskać większą kontrolę nad zachowaniem buforowanego obiektu, można zaimplementować ICachedType interfejs w typie buforowanego obiektu. Możesz na przykład zaimplementować ten interfejs, jeśli chcesz kontrolować sposób powiadamiania użytkownika o zmianie obiektu. Przykłady kodu, które pokazują, jak zaimplementować ICachedTypeprogram , zobacz klasę ControlCollection
w przykładzie przykładowych kontrolek dynamicznych programu Excel i przykładowych kontrolek dynamicznych programu Word w przykładach dla deweloperów pakietu Office i przewodnikach.
Utrwalanie zmian w buforowanych danych w dokumentach chronionych hasłem
W przypadku buforowania obiektów danych w dokumencie chronionym hasłem zmiany w buforowanych danych nie zostaną zapisane. Zmiany w buforowanych danych można zapisać, przesłaniając dwie metody. Zastąpij te metody, aby tymczasowo usunąć ochronę po zapisaniu dokumentu, a następnie ponownie zastosować ochronę po zakończeniu operacji zapisywania.
Aby uzyskać więcej informacji, zobacz How to: Cache data in a password-protected document (Instrukcje: buforowanie danych w dokumencie chronionym hasłem).
Zapobieganie utracie danych podczas dodawania wartości null do pamięci podręcznej danych
Po dodaniu obiektów do pamięci podręcznej danych wszystkie buforowane obiekty muszą zostać zainicjowane do wartości innej niż null , zanim dokument zostanie zapisany i zamknięty. Jeśli jakikolwiek buforowany obiekt ma wartość null po zapisaniu i zamknięciu dokumentu, środowisko uruchomieniowe Visual Studio Tools dla pakietu Office automatycznie usunie wszystkie buforowane obiekty z pamięci podręcznej danych.
W przypadku dodania obiektu z wartością null do pamięci podręcznej danych przy użyciu atrybutu CachedAttribute w czasie projektowania można użyć ServerDocument klasy do zainicjowania buforowanych obiektów danych przed otwarciem dokumentu. Jest to przydatne, jeśli chcesz zainicjować buforowane dane na serwerze bez zainstalowanego programu Word lub Excel, zanim dokument zostanie otwarty przez użytkownika końcowego. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do danych w dokumentach na serwerze.
Powiązana zawartość
- Instrukcje: buforowanie danych do użycia w trybie offline lub na serwerze
- Instrukcje: Programowe buforowanie źródła danych w dokumencie pakietu Office
- Instrukcje: buforowanie danych w dokumencie chronionym hasłem
- Przewodnik: tworzenie relacji szczegółów wzorca przy użyciu buforowanego zestawu danych