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[]) | 建立 Store 類別的執行個體,這個執行個體會將 IServiceProvider 實作委派給指定的 serviceProvider。 |
回頁首
屬性
名稱 | 描述 | |
---|---|---|
ChangeSource | 取得存放區中作業的目前變更來源。 | |
CurrentContext | 取得存放區目前的內容。 | |
DefaultPartition | 取得或設定存放區的預設分割。 | |
DemandLoading | 取得存放區目前是否正在視需要載入關聯性。 | |
Disposed | 取得是否已處置存放區。 | |
DomainDataDirectory | 取得存放區的網域資訊目錄。 | |
DomainModels | 取得這個存放區中網域模型的集合。 | |
ElementDirectory | 取得存放區中所包含項目的目錄。 | |
ElementFactory | 取得模型的項目 Factory。 | |
EventManagerDirectory | 取得模型的事件管理員目錄。 | |
Id | 取得存放區的 ID。 | |
InRedo | 取得存放區,並確認存放區的目前內容是否正在取消復原。 | |
InSerializationTransaction | 表示存放區有交易堆疊中的目前使用中序列化交易 | |
InUndo | 取得存放區,並確認存放區的目前內容是否正在復原。 | |
InUndoRedoOrRollback | 取得存放區,並確認存放區的目前內容正在取消復原、復原或回復。 | |
Partitions | 取得存放區之 Partition 物件的集合。 | |
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 的淺層複本 (Shallow Copy)。 (繼承自 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));
執行緒安全
這個類型的任何 Public 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