Sdílet prostřednictvím


Data mezipaměti

Datové objekty můžete ukládat do mezipaměti v přizpůsobení na úrovni dokumentu, aby k datům bylo možné přistupovat offline nebo bez otevření systém Microsoft Office Wordu nebo systém Microsoft Office Excelu. Pokud chcete objekt uložit do mezipaměti, musí mít objekt datový typ, který splňuje určité požadavky. Mnoho běžných datových typů v rozhraní .NET Framework splňuje tyto požadavky, včetně String, DataSeta DataTable.

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu pro Excel a Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

Objekt do mezipaměti dat můžete přidat dvěma způsoby:

Požadavky na datové objekty, které se mají ukládat do mezipaměti

Pokud chcete datový objekt uložit do mezipaměti ve vašem řešení, musí objekt splňovat tyto požadavky:

  • Může se jednat o veřejné pole pro čtení/zápis nebo vlastnost položky hostitele, například třídy ThisDocument nebo ThisWorkbook položky hostitele.

  • Nejedná se o indexer ani jinou parametrizovanou vlastnost.

    Kromě toho musí být datový objekt serializovatelný XmlSerializer třídou, což znamená, že typ objektu musí mít tyto vlastnosti:

  • Buďte veřejným typem.

  • Mít veřejný konstruktor bez parametrů.

  • Nespouštět kód, který vyžaduje další oprávnění zabezpečení.

  • Zveřejnění pouze veřejných vlastností pro čtení a zápis (ostatní vlastnosti budou ignorovány).

  • Nezpřístupňuje vícerozměrná pole (jsou přijímána vnořená pole).

  • Nevrací rozhraní z vlastností a polí.

  • Neimplementujte IDictionary , pokud kolekce.

    Při ukládání datového objektu do mezipaměti serializuje Visual Studio Tools for Office runtime objekt do řetězce XML, který je uložen ve vlastní části XML v dokumentu. Další informace naleznete v tématu Přehled vlastních částí XML.

Omezení velikosti dat uložených v mezipaměti

Existují určitá omezení celkového množství dat, která můžete přidat do mezipaměti dat v dokumentu, a velikost libovolného jednotlivého objektu v mezipaměti dat. Pokud tyto limity překročíte, aplikace se může neočekávaně zavřít, když se data uloží do mezipaměti dat.

Pokud se chcete těmto omezením vyhnout, postupujte podle těchto pokynů:

  • Do mezipaměti dat nepřidávejte žádný objekt větší než 10 MB.

  • Do mezipaměti dat v jednom dokumentu nepřidávejte více než 100 MB celkových dat.

    Jedná se o přibližné hodnoty. Přesná omezení závisí na několika faktorech, včetně dostupné paměti RAM a počtu spuštěných procesů.

Řízení chování objektů uložených v mezipaměti

Pokud chcete získat větší kontrolu nad chováním objektu uloženého v mezipaměti, můžete rozhraní implementovat ICachedType na typ objektu uloženého v mezipaměti. Toto rozhraní můžete například implementovat, pokud chcete řídit, jak je uživatel upozorněn při změně objektu. Příklady kódu, které ukazují, jak implementovat ICachedType, viz ControlCollection třída v excel dynamické ovládací prvky ukázka a word dynamické ovládací prvky ukázka ve vývojových ukázkách a návodech pro Office.

Trvalé změny dat uložených v mezipaměti v dokumentech chráněných heslem

Pokud ukládáte datové objekty do mezipaměti v dokumentu chráněném heslem, změny dat uložených v mezipaměti se neuloží. Změny dat uložených v mezipaměti můžete uložit přepsáním dvou metod. Tyto metody přepište, aby se po uložení dokumentu dočasně odebrala ochrana a po dokončení operace uložení ochranu znovu použít.

Další informace naleznete v tématu Postupy: Ukládání dat do mezipaměti v dokumentu chráněném heslem.

Zabránění ztrátě dat při přidávání hodnot null do mezipaměti dat

Když do mezipaměti dat přidáte objekty, musí být všechny objekty v mezipaměti inicializovány na hodnotu, která není null , než se dokument uloží a zavře. Pokud má některý objekt uložený v mezipaměti hodnotu null při uložení a zavření dokumentu, visual Studio Tools for Office runtime automaticky odebere všechny objekty uložené v mezipaměti dat.

Pokud přidáte objekt s hodnotou null do mezipaměti dat pomocí atributu CachedAttribute v době návrhu, můžete pomocí ServerDocument třídy inicializovat datové objekty v mezipaměti před otevřením dokumentu. To je užitečné, pokud chcete inicializovat data uložená v mezipaměti na serveru bez nainstalovaného Wordu nebo Excelu před otevřením dokumentu koncovým uživatelem. Další informace najdete v tématu Přístup k datům v dokumentech na serveru.