Store 类

存储在一个或多个模型包含元素和链接一个内存表示形式。

继承层次结构

System.Object
  Microsoft.VisualStudio.Modeling.Store

命名空间:  Microsoft.VisualStudio.Modeling
程序集:  Microsoft.VisualStudio.Modeling.Sdk.11.0(在 Microsoft.VisualStudio.Modeling.Sdk.11.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 实现为特定服务提供程序 (ssp) 存储类的实例。

页首

属性

  名称 说明
公共属性 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 。 一般不需要创建存储的新实例,不过,您可以读取方式向它通过反序列化方式向新实例。 通常,在设计时对存储的 get 访问从元素的 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