Delen via


Cachegegevens

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:

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 ThisDocument of ThisWorkbook.

  • 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.