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 命名空间
其他资源
How to: Create Elements in Code
How to: Create Elements in Code
How to: Set or Get Domain Property Values