共用方式為


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 命名空間

其他資源

[重新導向] 產生的 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