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