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