Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Datenobjekte in einer Anpassung auf Dokumentebene zwischenspeichern, sodass auf die Daten offline zugegriffen werden kann, oder ohne Microsoft Office Word oder Microsoft Office Excel zu öffnen. Um ein Objekt zwischenzuspeichern, muss das Objekt über einen Datentyp verfügen, der bestimmte Anforderungen erfüllt. Viele gängige Datentypen in .NET Framework erfüllen diese Anforderungen, einschließlich String, DataSetund DataTable.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene für Excel und Word. Weitere Informationen finden Sie unter Funktionen verfügbar nach Office-Anwendung und Projekttyp.
Es gibt zwei Möglichkeiten zum Hinzufügen eines Objekts zum Datencache:
Um dem Datencache beim Erstellen der Lösung ein Objekt hinzuzufügen, wenden Sie das CachedAttribute Attribut auf die Objektdeklaration an. Weitere Informationen finden Sie unter So geht's: Daten für die Offline-Nutzung oder auf einem Server zwischenspeichern.
Um dem Datencache zur Laufzeit programmgesteuert ein Objekt hinzuzufügen, verwenden Sie die
StartCaching-Methode eines Hostelements, z. B. die KlassenThisDocumentoderThisWorkbook. Weitere Informationen finden Sie unter Anleitung: Programmgesteuertes Zwischenspeichern einer Datenquelle in einem Office-Dokument.Nachdem Sie dem Datencache ein Objekt hinzugefügt haben, können Sie auf zwischengespeicherte Daten zugreifen und diese ändern, ohne Word oder Excel zu starten. Weitere Informationen finden Sie unter Access-Daten in Dokumenten auf dem Server.
Anforderungen für datenobjekte, die zwischengespeichert werden sollen
Um ein Datenobjekt in Ihrer Lösung zwischenzuspeichern, muss das Objekt die folgenden Anforderungen erfüllen:
Ein öffentliches Lese-/Schreibfeld oder eine Eigenschaft eines Hostelements, wie zum Beispiel die
ThisDocument- oderThisWorkbook-Klassen.Es handelt sich nicht um einen Indexer oder eine andere parametrisierte Eigenschaft.
Darüber hinaus muss das Datenobjekt von der XmlSerializer Klasse serialisierbar sein, was bedeutet, dass der Typ des Objekts folgende Merkmale aufweisen muss:
Seien Sie ein öffentlicher Typ.
Haben Sie einen öffentlichen Konstruktor ohne Parameter.
Führen Sie keinen Code aus, der zusätzliche Sicherheitsberechtigungen erfordert.
Nur öffentliche Eigenschaften mit Lese-/Schreibzugriff freigeben (andere Eigenschaften werden ignoriert).
Mehrdimensionale Arrays nicht exponieren (geschachtelte Arrays werden akzeptiert).
Keine Schnittstellen von Eigenschaften und Feldern zurückgeben.
Wird nicht implementiert IDictionary , wenn eine Sammlung vorhanden ist.
Wenn Sie ein Datenobjekt zwischenspeichern, serialisiert die Visual Studio Tools für Office-Laufzeit das Objekt in eine XML-Zeichenfolge, die in einem benutzerdefinierten XML-Teil im Dokument gespeichert ist. Weitere Informationen finden Sie in der Übersicht über benutzerdefinierte XML-Komponenten.
Grenzwerte für zwischengespeicherte Datengrößen
Es gibt einige Grenzwerte für die Gesamtmenge der Daten, die Sie dem Datencache in einem Dokument hinzufügen können, und zur Größe eines einzelnen Objekts im Datencache. Wenn Sie diese Grenzwerte überschreiten, wird die Anwendung möglicherweise unerwartet geschlossen, wenn die Daten im Datencache gespeichert werden.
Um diese Grenzwerte zu vermeiden, befolgen Sie die folgenden Richtlinien:
Fügen Sie dem Datencache kein Objekt hinzu, das größer als 10 MB ist.
Fügen Sie dem Datencache in einem einzelnen Dokument nicht mehr als 100 MB Gesamtdaten hinzu.
Dies sind ungefähre Werte. Die genauen Grenzwerte hängen von mehreren Faktoren ab, einschließlich des verfügbaren RAM und der Anzahl der laufenden Prozesse.
Steuern des Verhaltens von zwischengespeicherten Objekten
Um mehr Kontrolle über das Verhalten eines zwischengespeicherten Objekts zu erlangen, können Sie die ICachedType Schnittstelle für den Typ des zwischengespeicherten Objekts implementieren. Sie können diese Schnittstelle beispielsweise implementieren, wenn Sie steuern möchten, wie der Benutzer benachrichtigt wird, wenn das Objekt geändert wurde. Codebeispiele, die die Implementierung von ICachedType veranschaulichen, finden Sie in der ControlCollection-Klasse im Beispiel für dynamische Excel-Steuerelemente und im Beispiel für dynamische Word-Steuerelemente in den Office-Entwicklungsbeispielen und exemplarischen Vorgehensweisen.
Änderungen an zwischengespeicherten Daten in kennwortgeschützten Dokumenten speichern.
Wenn Sie Datenobjekte in einem Dokument zwischenspeichern, das mit einem Kennwort geschützt ist, werden Änderungen an den zwischengespeicherten Daten nicht gespeichert. Sie können Änderungen an den zwischengespeicherten Daten speichern, indem Sie zwei Methoden überschreiben. Überschreiben Sie diese Methoden, um den Schutz vorübergehend zu entfernen, wenn das Dokument gespeichert wird, und anschließend den Schutz erneut zu aktivieren, nachdem der Speichervorgang abgeschlossen ist.
Weitere Informationen finden Sie unter Vorgehensweise: Zwischenspeichern von Daten in einem kennwortgeschützten Dokument.
Verhindern von Datenverlust beim Hinzufügen von NULL-Werten zum Datencache
Wenn Sie dem Datencache Objekte hinzufügen, müssen alle zwischengespeicherten Objekte auf einen Wert ohne Null initialisiert werden, bevor das Dokument gespeichert und geschlossen wird. Wenn ein zwischengespeichertes Objekt einen NULL-Wert aufweist, wenn das Dokument gespeichert und geschlossen wird, entfernt die Visual Studio Tools für Office-Laufzeit automatisch alle zwischengespeicherten Objekte aus dem Datencache.
Wenn Sie ein Objekt mit einem NULL-Wert zum Datencache hinzufügen, indem Sie das CachedAttribute Attribut zur Entwurfszeit verwenden, können Sie die ServerDocument Klasse verwenden, um die zwischengespeicherten Datenobjekte zu initialisieren, bevor das Dokument geöffnet wird. Dies ist nützlich, wenn Sie die zwischengespeicherten Daten auf einem Server initialisieren möchten, ohne dass Word oder Excel installiert ist, bevor das Dokument von einem Endbenutzer geöffnet wird. Weitere Informationen finden Sie unter Access-Daten in Dokumenten auf dem Server.
Verwandte Inhalte
- Vorgehensweise: Zwischenspeichern von Daten für die Offlineverwendung oder auf einem Server
- Vorgehensweise: Programmgesteuertes Zwischenspeichern einer Datenquelle in einem Office-Dokument
- Vorgehensweise: Zwischenspeichern von Daten in einem kennwortgeschützten Dokument
- Anleitung: Erstellen einer Master-Detail-Beziehung mit einem zwischengespeicherten Dataset