共用方式為


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[]) 建立委派 (delegate) 來指定 serviceProvider 的 IServiceProvider 實作的存放區類別的執行個體。

回頁首

屬性

  名稱 說明
公用屬性 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 的淺層複本 (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