Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt gegevensobjecten opslaan in een aanpassing op documentniveau, zodat de gegevens offline kunnen worden geopend of zonder Microsoft Office Word of Microsoft Office Excel te openen. Als u een object in de cache wilt opslaan, moet het object een gegevenstype hebben dat voldoet aan bepaalde vereisten. Veel algemene gegevenstypen in .NET Framework voldoen aan deze vereisten, waaronder String, DataSeten DataTable.
Van toepassing op: De informatie in dit onderwerp is van toepassing op projecten op documentniveau voor Excel en Word. Zie Functies die beschikbaar zijn voor de Office-toepassing en het projecttype voor meer informatie.
Er zijn twee manieren om een object toe te voegen aan de gegevenscache:
Als u een object wilt toevoegen aan de gegevenscache wanneer de oplossing wordt gebouwd, past u het CachedAttribute kenmerk toe op de objectdeclaratie. Zie Instructies voor meer informatie : Gegevens opslaan voor offlinegebruik of op een server.
Als u programmatisch een object wilt toevoegen aan de gegevenscache tijdens runtime, gebruikt u de
StartCachingmethode van een hostitem, zoals deThisDocumentofThisWorkbookklassen. Zie Procedure: Programmatisch een gegevensbron opslaan in een Office-document voor meer informatie.Nadat u een object aan de gegevenscache hebt toegevoegd, kunt u de gegevens in de cache openen en wijzigen zonder Word of Excel te starten. Zie Access-gegevens in documenten op de server voor meer informatie.
Vereisten voor gegevensobjecten die in de cache moeten worden opgeslagen
Als u een gegevensobject in uw oplossing in de cache wilt opslaan, moet het object voldoen aan deze vereisten:
Een openbaar veld of een openbare eigenschap voor lezen en schrijven van een hostitem, zoals de klassen
ThisDocumentofThisWorkbook.Niet een indexeerfunctie of een andere geparameteriseerde eigenschap zijn.
Bovendien moet het gegevensobject door de XmlSerializer klasse worden serialiseerbaar, wat betekent dat het type van het object deze kenmerken moet hebben:
Wees een openbaar type.
Een openbare constructor zonder parameters hebben.
Voer geen code uit waarvoor aanvullende beveiligingsbevoegdheden zijn vereist.
Alleen openbare eigenschappen voor lezen/schrijven beschikbaar maken (andere eigenschappen worden genegeerd).
Niet beschikbaar maken van multidimensionale matrices (geneste matrices worden geaccepteerd).
Retourneer geen interfaces uit eigenschappen en velden.
Implementeer IDictionary niet als een verzameling.
Wanneer u een gegevensobject in de cache opslaat, serialiseert de Visual Studio Tools voor Office-runtime het object in een XML-tekenreeks die is opgeslagen in een aangepast XML-onderdeel in het document. Zie het overzicht van aangepaste XML-onderdelen voor meer informatie.
Limieten voor gegevensgrootte in cache
Er zijn enkele limieten voor de totale hoeveelheid gegevens die u aan de gegevenscache in een document kunt toevoegen en aan de grootte van elk afzonderlijk object in de gegevenscache. Als u deze limieten overschrijdt, wordt de toepassing mogelijk onverwacht gesloten wanneer de gegevens worden opgeslagen in de gegevenscache.
Volg deze richtlijnen om deze limieten te voorkomen:
Voeg geen objecten toe die groter zijn dan 10 MB aan de gegevenscache.
Voeg niet meer dan 100 MB aan totale gegevens toe aan de gegevenscache in één document.
Dit zijn geschatte waarden. De exacte limieten zijn afhankelijk van verschillende factoren, waaronder het beschikbare RAM-geheugen en het aantal actieve processen.
Het gedrag van objecten in de cache beheren
Als u meer controle wilt over het gedrag van een object in de cache, kunt u de ICachedType interface implementeren op het type object in de cache. U kunt deze interface bijvoorbeeld implementeren als u wilt bepalen hoe de gebruiker wordt gewaarschuwd wanneer het object is gewijzigd. Raadpleeg de ICachedType klasse in de Excel Dynamic Controls Sample en de Word Dynamic Controls Sample in ControlCollection voor codevoorbeelden die laten zien hoe u ICachedType implementeert.
Wijzigingen in gegevens in de cache behouden in documenten die met een wachtwoord zijn beveiligd
Als u gegevensobjecten in een document opslaat dat is beveiligd met een wachtwoord, worden wijzigingen in de gegevens in de cache niet opgeslagen. U kunt wijzigingen in de gegevens in de cache opslaan door twee methoden te overschrijven. Overschrijf deze methoden om de beveiliging tijdelijk te verwijderen wanneer het document wordt opgeslagen en pas de beveiliging vervolgens opnieuw toe nadat de opslagbewerking is voltooid.
Zie Instructies voor meer informatie : Gegevens opslaan in een document dat met een wachtwoord is beveiligd.
Gegevensverlies voorkomen bij het toevoegen van null-waarden aan de gegevenscache
Wanneer u objecten toevoegt aan de gegevenscache, moeten alle objecten in de cache worden geïnitialiseerd op een niet-null-waarde voordat het document wordt opgeslagen en gesloten. Als een object in de cache een null-waarde heeft wanneer het document wordt opgeslagen en gesloten, worden met visual Studio Tools voor Office Runtime automatisch alle objecten in de cache verwijderd uit de gegevenscache.
Als u een object met een null-waarde aan de gegevenscache toevoegt met behulp van het kenmerk tijdens het CachedAttribute ontwerp, kunt u de ServerDocument klasse gebruiken om de gegevensobjecten in de cache te initialiseren voordat het document wordt geopend. Dit is handig als u de gegevens in de cache wilt initialiseren op een server waarop Word of Excel niet is geïnstalleerd, voordat het document wordt geopend door een eindgebruiker. Zie Access-gegevens in documenten op de server voor meer informatie.
Verwante inhoud
- Procedure: Gegevens in cache opslaan voor offlinegebruik of op een server
- Procedure: Programmatisch een gegevensbron opslaan in een Office-document
- Procedure: Gegevens opslaan in een document dat met een wachtwoord is beveiligd
- Overzicht: Een hoofddetailrelatie maken met behulp van een gegevensset in de cache