Сохранение данных в кэше данных

Оценить
(0 голоса)

Кэш данных — это область для чтения/записи в документе Office Word или рабочей книге Excel, которую ваше приложение Office может использовать для хранения необходимых данных. Самый часто встречающийся вариант— привязка элементов управления хоста или элементов управления Windows Forms в панели действий или на поверхности документа к набору данных, сохраненному в острове данных документа.

Физически этот остров данных реализован как XML-документ, который встроен в документ Office. Этот XML-контейнер может хранить любой тип данных, который удовлетворяет сле­дующим двум требованиям:

□    он должен быть реализован как открытое поле элемента хоста для чтения/записи (на­пример, класс This Document для Word или класс ThisWorkbook для Excel);

□    он должен быть сериализируемым (исполняющая среда использует XmlSerializer для вербализации объекта в острове данных).

Большинство встроенных типов .NET соответствует этим требованиям. Если вы написали нестандартный тип, который также удовлетворяет этим требованиям, то он тоже может быть сохранен внутри острова данных.

Добавить данные в кэш данных просто. Вы помечаете атрибутом CachedAttribute тот тип данных, который хотите сохранить, и тогда (при условии, что тип удовлетворяет требовани­ям кэша данных и что вы создали экземпляр данного типа внутри вашего проекта VSTO уровня документа) он будет автоматически добавлен в остров данных. Описание: image581

Объекты DataSet оказываются полезными при передаче внутри острова данных. Для объ­явления DataSet в качестве кэшируемого необходимо написать следующее:

[Microsoft.VisualStudio.Tools.Applications.Runtime.Cached()] public DataSet poDataSet;

Это декларативная инструкция для исполняющей среды VSTO— сериализовать объект и добавить его в кэш данных текущего документа. Сам DataSet можно заполнять так, как вам угодно.

Есть также способ обязательного кэширования объекта в документе. Каждый элемент хоста предоставляет методы isCached и startCaching. Комбинируя оба этих метода, вы можете проверить, имеется ли уже объект в кэше, и если его еще нет— добавить его в кэш. При помощи этих двух методов вы можете добавить следующий код для сохранения в документе нашего объекта poDataSet:

if (!this.IsCached("poDataSet"))

{

this.StartCaching("poDataSet ");

}

Если вы используете метод StartCaching (), то нет необходимости помечать класс атрибу­том Cached, но сам объект должен по-прежнему выполнять остальные требования для се­риализации острова данных Office. Вы можете также использовать метод stopCaching хост-элемента для того, чтобы дать указание исполняющей среде VSTO удалить объект из кэша данных документа.

Совет

Есть еще и третий способ поместить объект в кэш данных: окно свойств. Если вы ис­пользуете окно Data Sources для добавления набора данных в ваш проект, то сможе­те создать экземпляр набора данных, а затем выбрать его в визуальном конструкторе. В окне свойств для экземпляра набора данных установите свойство Cache in Docu­ment в значение True. Вам понадобится также изменить тип доступа экземпляра на­бора данных на Public.

Подробнее в этой категории: « Microsoft Office Доступ к кэшу данных »
Доступ к кэшу данных
Реализация ваших собственных смарт-тегов
Резюме
Microsoft Office
Функциональные возможности Office

Добавить комментарий


Защитный код
Обновить

© 2018 www.visualstudios.ru. Все права защищены.