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[]) 创建存储类的实例,该类把 IServiceProvider 实现委托给给定 serviceProvider。

页首

属性

  名称 说明
公共属性 ChangeSource 获取存储中操作的当前更改源。
公共属性 CurrentContext 获取储存区的当前上下文。
公共属性 DefaultPartition 获取或设置存储区的默认分区。
公共属性 DemandLoading 获取存储区当前是否正在加载关系。
公共属性 Disposed 获取独立存储区是否已被释放。
公共属性 DomainDataDirectory 获取存储区的域信息目录。
公共属性 DomainModels 获取此存储中域模型的集合。
公共属性 ElementDirectory 获取包含在存储中的各元素的目录。
公共属性 ElementFactory 获取模型的要素工厂。
公共属性 EventManagerDirectory 获取该模型的事件管理器目录。
公共属性 Id 获取存储的 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 按其 ID 查找域模型。
公共方法 FindMonikerResolver 查找由特定域模型注册的 IMonikerResolver
公共方法 GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) 如果根元素列表指定,则创建给定关闭类型的默认分区的元素组原型。
公共方法 GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) 给定根元素列表和允许跳过需求加载时,创建指定关闭类型的默认分区的元素组原型。
公共方法 GetDomainModel(Guid) 通过其 ID 获取域模型的实例。
公共方法 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(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参阅

参考

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