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