Поделиться через


Store - класс

Хранилище содержит представление в памяти элементов и связей в одной или нескольких моделях.

Иерархия наследования

System.Object
  Microsoft.VisualStudio.Modeling.Store

Пространство имен:  Microsoft.VisualStudio.Modeling
Сборка:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (в Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Синтаксис

'Декларация
Public Class Store _
    Implements IServiceProvider, IDisposable
public class Store : IServiceProvider, IDisposable

Тип Store предоставляет следующие члены.

Конструкторы

  Имя Описание
Открытый метод Store(array<Type[]) Инициализирует новый экземпляр класса Store.
Открытый метод Store(IServiceProvider, array<Type[]) Инициализирует новый экземпляр класса Store.
Открытый метод Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Создает экземпляр класса Store, которые делегирует реализацию IServiceProvider к данному serviceProvider.

В начало страницы

Свойства

  Имя Описание
Открытое свойство ChangeSource Получает текущий источник изменений для операций в хранилище.
Открытое свойство CurrentContext Получает текущий контекст хранилища.
Открытое свойство DefaultPartition Получает или задает раздел по умолчанию для хранилища.
Открытое свойство DemandLoading Получает значение, указывающее, загружает ли хранилище в данный момент отношение по требованию.
Открытое свойство Disposed Получает значение, указывающее, было ли хранилище ликвидировано.
Открытое свойство DomainDataDirectory Получает каталог данных домена хранилища.
Открытое свойство DomainModels Получает коллекцию модели домена в данном хранилище.
Открытое свойство ElementDirectory Получает каталог элементов, содержащихся в хранилище.
Открытое свойство ElementFactory Получает фабрику элементов для модели.
Открытое свойство EventManagerDirectory Получает каталог диспетчера событий для модели.
Открытое свойство Id Получает идентификатор хранилища.
Открытое свойство InRedo Получает хранилище и проверяет, повторяется ли текущий контекст хранилища.
Открытое свойство InSerializationTransaction Указывает, что хранилище в данный момент имеет активную транзакцию сериализации в стеке транзакций
Открытое свойство InUndo Получает хранилище и проверяет, отменяется ли текущий контекст хранилища.
Открытое свойство InUndoRedoOrRollback Получает хранилище и проверяет, повторяется, отменяется или откатывается текущий контекст хранилища.
Открытое свойство Partitions Получает коллекцию объектов разбиения для хранилища.
Открытое свойство PartitionsAlternate Получает разделы, используемые в хранилище.
Открытое свойство PropertyBag Получает контейнер свойств для хранилища.
Открытое свойство RuleManager Получает диспетчер правил для хранилища.
Открытое свойство SerializerDirectory Каталог сериализации до умолчанию для данного хранилища
Открытое свойство ShuttingDown Получает хранилище и проверяет, закрывается ли хранилища, или задает состояние хранилища как "закрывается".
Открытое свойство TransactionActive Получает или задает значение, указывающее, есть ли у хранилища в настоящий момент активная транзакция.
Открытое свойство TransactionLogs Получает текущий список журналов транзакций для хранилища.
Открытое свойство TransactionManager Получает диспетчер транзакций для модели.
Открытое свойство UndoManager Получает UndoManager для контекста по умолчанию.
Открытое свойство Version Получает версию хранилища.

В начало страницы

Методы

  Имя Описание
Открытый метод AddMonikerResolver Регистрация IMonikerResolver для указанной модели домена.
Открытый метод DefaultPartitionForClass Возвращает раздел, в котором новые элементы заданного класса должен быть создан по умолчанию.
Открытый метод Dispose Удаляет хранилище.
Открытый метод Equals Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод FindDomainModel Находит модель домена по ее идентификатору.
Открытый метод FindMonikerResolver Находит IMonikerResolver зарегистрированное для указанной модели домена.
Открытый метод GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Создает прототип группы элементов в разделе по умолчанию данного типа закрытия, если список корневых элементов указан.
Открытый метод GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Создает прототип группы элементов в разделе по умолчанию указанного типа закрытия при получении списка корневых элементов, и разрешает обход требования загрузки.
Открытый метод GetDomainModel(Guid) Получает экземпляр модели домена по ее идентификатору.
Открытый метод GetDomainModel<T>() Получает экземпляр указанного типа модели домена.
Открытый метод GetHashCode Служит хэш-функцией по умолчанию. (Унаследовано от Object.)
Открытый метод GetService Возвращает службу.
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Открытый метод LoadDomainModels Создает все данные домена для указанного списка моделей домена.
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Открытый метод PopContext Удаляет текущий контекст из верхней части стека.
Открытый метод PushContext Перемещает новый контекст наверх стека контекста хранилища.
Открытый метод RegisterTransactionLog Позволяет клиенту регистрировать журнал транзакций, который будет уведомляться о событий на этом хранилище.
Открытый метод ToString Возвращает строку, представляющую текущий объект. (Унаследовано от Object.)
Открытый метод UnregisterTransactionLog Позволяет клиенту отменить регистрацию журнала транзакций, который не будет уведомляться о событий на этом хранилище.

В начало страницы

События

  Имя Описание
Открытое событие StoreDisposing Возникает, когда хранилище ликвидируется.

В начало страницы

Методы расширения

  Имя Описание
Открытый метод расширения GetLocks Получить флажки блокировки для данного экземпляра хранилища (Определено в ImmutabilityExtensionMethods.)
Открытый метод расширения IsLocked Проверка, имеется ли у данного хранилища какая-либо блокировка из указанного набора блокировок (Определено в ImmutabilityExtensionMethods.)
Открытый метод расширения SetLocks Задать флажки блокировки данного экземпляра хранилища (Определено в ImmutabilityExtensionMethods.)

В начало страницы

Заметки

Магазин содержит сведения об одном или нескольких моделях. Магазин может содержать коллекцию моделей, хотя часто только одна модель в магазине.

Магазин также содержит метаданные о модели, а также сведения об экземплярах элементов и связей между элементами, составляющие такую модель. Метаданные содержат допустимые типы в модели, и их отношения.

Магазин имеет несколько структур данных, модель, когда загружается магазин. Это происходит в следующих случаях:

  • когда доменный язык начат, как экспериментальном построении

  • при развертывании доменный язык и пользователь запускают его

  • после загрузки в модель магазин программными средствами

DomainDataDirectory содержит метаданные о типах, чтобы включить в модели.

ElementDirectory содержит сведения о каждом экземпляре элемента и их связей. (Экземпляров в ElementDirectory должны быть типов, определенных в DomainDataDirectory).

От магазина, можно перейти к отдельным элементам в магазине. Можно получить сведения об элементах или типах. Можно также выполнять следующие задачи:

  • добавьте элементы

  • удалите элементы

  • изменение существующих элементов и ссылки и их свойств

При изменении магазин необходимо заключить любой код, который записывает данные в хранилище в Transaction. Можно отменить все изменения в хранилище сделанному в транзакции, выполнив Rollback транзакции или не выполняя Commit транзакции.

Магазин имеет RuleManager, содержащий функцию для подписки на правилам. Магазин может также подписаться на события.

Магазин также имеет UndoManager с членами, позволяющих отмены и вернуть изменения в хранилище. Обычно не следует создать новый экземпляр магазина, хотя можно и можно прочитать модель в его, выполнив модель в новый экземпляр. Часто, пользователь получает доступ к магазину из свойства Store элемента или ссылки в модели. Аргументы события правил и событий предоставляют экземпляр элемента или ссылки, правило или событие относящийся к и использовать его свойство магазина получить магазин и его TransactionManager.

Примеры

В следующих примерах показаны различные способы создания магазин. Если зависимости между доменом моделей, как показано в следующем примере, третьем модели домена должны быть определены в порядке зависимости.

// Create a store with your domain models (classes in the generated 
// code derived from Microsoft.VisualStudio.Modeling.DomainModel).
Store store = new Store(typeof(ActivityDomainModel));

// Domain models can be loaded into the store after construction.
// Be sure to call store.Dispose() when you are done with it. 
Store store2 = new Store();
Store2.LoadDomainModels(typeof(ActivityDomainModel));

// Multiple domain models can be loaded into the store at once
Store store3 = new Store(typeof(BaseActivityDomainModel), typeof(ExtendedActivityDomainModel));

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.Modeling - пространство имен

Другие ресурсы

[перенаправление] Доменная модель в генерируемом API

How to: Create Elements in Code

How to: Create Elements in Code

How to: Create Links in Code

How to: Set or Get Domain Property Values

How to: Delete Elements and Links Programmatically

How to: Undo and Redo Changes Made to the Store