Freigeben über


Zwischenspeichern von Daten

Aktualisiert: Juli 2008

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

Microsoft Office-Version

  • 2007 Microsoft Office System

  • Microsoft Office 2003

Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Sie können Datenobjekte in einer Anpassung auf Dokumentebene zwischenspeichern, sodass Sie auf diese Daten zugreifen können, ohne online zu sein oder Microsoft Office Excel oder Microsoft Office Word zu starten. Damit ein Objekt zwischengespeichert werden kann, muss es über einen Datentyp verfügen, der bestimmte Anforderungen erfüllt. Viele allgemeine Datentypen in .NET Framework erfüllen diese Anforderungen, einschließlich String, DataSet und DataTable.

Es gibt zwei Möglichkeiten, dem Datencache ein Objekt hinzuzufügen:

Nachdem Sie dem Datencache ein Objekt hinzugefügt haben, können Sie auf die zwischengespeicherten Daten zugreifen und diese ändern, ohne Word oder Excel zu starten. Weitere Informationen hierzu finden Sie unter Zugreifen auf Daten in Dokumenten auf dem Server.

Anforderungen an Datenobjekte, die zwischengespeichert werden sollen

Wenn Sie selbst erstellte Datentypinstanzen zwischenspeichern möchten, müssen die Datentypen die folgenden Anforderungen erfüllen:

  • Es muss sich um ein öffentliches Feld oder eine öffentliche Eigenschaft eines Hostelements mit Lese-/Schreibzugriff handeln, beispielsweise die ThisDocument-Klasse oder die ThisWorkbook-Klasse.

  • Es darf sich dabei nicht um einen Indexer oder eine andere parametrisierte Eigenschaft handeln.

Zudem muss das Datenobjekt durch die XmlSerializer-Klasse serialisierbar sein. Es muss also folgende Eigenschaften aufweisen:

  • Es muss sich um einen öffentlichen Typ handeln.

  • Es muss über einen öffentlichen Konstruktor ohne Parameter verfügen.

  • Es darf kein Code ausgeführt werden, der zusätzliche Sicherheitsberechtigungen erfordert.

  • Es dürfen nur öffentliche Lese-/Schreibeigenschaften verfügbar gemacht werden (andere Eigenschaften werden ignoriert).

  • Es dürfen keine mehrdimensionalen Arrays verfügbar gemacht werden (geschachtelte Arrays sind zulässig).

  • Es dürfen keine Schnittstellen von Eigenschaften und Feldern zurückgegeben werden.

  • IDictionary darf nicht implementiert werden, wenn es sich um eine Auflistung handelt.

Steuern des Verhaltens zwischengespeicherter Objekte

Wenn Sie mehr Kontrolle über das Verhalten des zwischengespeicherten Objekts erhalten möchten, können Sie die ICachedType-Schnittstelle für den Typ des zwischengespeicherten Objekts implementieren. Sie können diese Schnittstelle z. B. implementieren, um die Art der Benachrichtigung von Benutzern über Änderungen im Objekt zu steuern. Codebeispiele, in denen die Implementierung von ICachedType dargestellt wird, finden Sie in der ControlCollection-Klasse in den folgenden Beispielanwendungen:

Beibehalten von Änderungen an zwischengespeicherten Daten in kennwortgeschützten Dokumenten

In Projekten auf Dokumentenebene für Word 2007 und Excel 2007 werden Änderungen an zwischengespeicherten Daten nicht gespeichert, wenn Sie Datenobjekte in einem kennwortgeschützten Dokument zwischenspeichern. Ab Visual Studio 2008 Service Pack 1 (SP1) können Sie Änderungen an zwischengespeicherten Daten durch das Überschreiben zweier Methoden speichern. Überschreiben Sie diese Methoden, um den Schutz beim Speichern des Dokuments vorübergehend aufzuheben, und wenden Sie den Schutz nach Abschluss des Speichervorgangs wieder an.

Weitere Informationen hierzu finden Sie unter Gewusst wie: 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 vor dem Speichern und Schließen des Dokuments alle zwischengespeicherten Objekte mit einem von null verschiedenen Wert initialisiert werden. Wenn ein zwischengespeichertes Objekt beim Speichern und Schließen des Dokuments den Wert null hat, werden alle zwischengespeicherten Elemente durch die Visual Studio Tools for Office-Laufzeit automatisch aus dem Datencache entfernt.

Wenn Sie dem Datencache zur Entwurfszeit mit dem CachedAttribute-Attribut ein Objekt mit dem Wert null hinzufügen, können Sie die zwischengespeicherten Datenobjekte mithilfe der ServerDocument-Klasse vor dem Öffnen des Dokuments initialisieren. Dies ist hilfreich, wenn Sie die zwischengespeicherten Daten vor dem Öffnen durch den Endbenutzer auf einem Server initialisieren möchten, auf dem weder Word noch Excel installiert ist. Weitere Informationen hierzu finden Sie unter Zugreifen auf Daten in Dokumenten auf dem Server.

Wie zwischengespeicherte Daten im Dokument gespeichert werden

Wenn Sie ein Datenobjekt in einem Dokument zwischenspeichern, serialisiert die Visual Studio Tools for Office-Laufzeit das Objekt in eine XML-Zeichenfolge, die im Dokument gespeichert wird. Wie die XML-Zeichenfolge im Dokument gespeichert wird, hängt von der Version von Microsoft Office ab, mit der Ihre Projektmappe arbeitet:

  • In Anpassungen für Microsoft Office 2003 speichert die Visual Studio Tools for Office-Laufzeit die XML-Zeichenfolge im Laufzeitspeicher-Steuerelement. Das Laufzeitspeicher-Steuerelement ist ein ActiveX-Steuerelement, das im Dokument eingebettet ist. Weitere Informationen hierzu finden Sie unter Übersicht über Laufzeitspeicher-Steuerelemente.

  • In Anpassungen für 2007 Microsoft Office System speichert die Visual Studio Tools for Office-Laufzeit die XML-Zeichenfolge in einem benutzerdefinierten XML-Abschnitt im Dokument. Weitere Informationen hierzu finden Sie unter Übersicht über benutzerdefinierte XML-Abschnitte.

Siehe auch

Aufgaben

Gewusst wie: Zwischenspeichern von Daten zur Offlineverwendung oder zur Verwendung auf einem Server

Gewusst wie: Programmgesteuertes Zwischenspeichern von Datenquellen in einem Office-Dokument

Gewusst wie: Programmgesteuertes Beenden des Zwischenspeicherns einer Datenquelle

Gewusst wie: Zwischenspeichern von Daten in einem kennwortgeschützten Dokument

Exemplarische Vorgehensweise: Erstellen einer Master/Detail-Beziehung mithilfe eines zwischengespeicherten Datasets

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Informationen über das Zwischenspeichern von Daten in kennwortgeschützten Dokumenten hinzugefügt.

SP1-Featureänderung.