次の方法で共有


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[]) 特定のサービス プロバイダーの実装に 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 の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド PopContext スタックの最上位から現在のコンテキストを削除します。
パブリック メソッド PushContext ストアのコンテキスト スタックの上部に新しいコンテキストを押します。
パブリック メソッド RegisterTransactionLog クライアントがこのストアのトランザクション ログ イベントの通知を登録することを許可します。
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッド UnregisterTransactionLog クライアントがこのストアのイベントの通知を受け取ることで、トランザクション ログの登録を解除できるようにします。

このページのトップへ

イベント

  名前 説明
パブリック イベント StoreDisposing ストアを破棄すると発生します。

このページのトップへ

拡張メソッド

  名前 説明
パブリック Extension メソッド GetLocks このストアのインスタンスのロックのフラグを取得します。 (ImmutabilityExtensionMethods によって定義されています。)
パブリック Extension メソッド IsLocked このストアにロックの指定された設定するかどうかをテストします。 (ImmutabilityExtensionMethods によって定義されています。)
パブリック Extension メソッド SetLocks このストアのインスタンスのロック フラグを設定します。 (ImmutabilityExtensionMethods によって定義されています。)

このページのトップへ

解説

ストアは、一つ以上のモデルに関する情報が含まれます。ストアは、ストアに 1 台のモデルがありますがモデルのコレクションを含めることができます。

ストアは、さらにそのモデルを構成する要素と要素の間のリンクのインスタンスに関する情報とモデルに関するメタデータが含まれます。メタデータは、モデルとリレーションシップで使用される型が含まれています。

ストアには、モデル ストアに格納し、複数のデータ構造体があります。これは、次の場合に発生します :

  • ドメイン固有言語の開始時、の実験用ビルドとしてまたは

  • ドメイン固有言語とエンド ユーザーの開始を配置した場合。

  • ストアにモデルをプログラムによって読み込みます

DomainDataDirectory はモデルに属する型についてのメタデータが含まれます。

ElementDirectory は、要素のインスタンスとリンクに関する情報が含まれます。(ElementDirectory のインスタンスは DomainDataDirectory で定義されている型である必要があります。

ストアから、ストア内の個々の項目に移動できます。要素または型に関する情報を取得できます。また、次のタスクを実行する場合 :

  • 項目を追加します。

  • 項目の削除

  • 既存の要素とリンクおよびプロパティを変更します。

ストアを変更するたびに、Transaction ストアに書き込むコードを記述する必要があります。トランザクションのストアに対して行われたすべての変更をトランザクションの Rollback をするか、トランザクションの Commit をせずに、キャンセルできます。

規則をサブスクライブする機能を含むストアに RuleManager があります。ストアは、イベントをサブスクライブできます。

ストアに変更を、元に戻したりやり直したりできるメンバーを持つストアに、UndoManager があります。モデルを読み込んで、新しいインスタンスにモデルを逆シリアル化してできますが、一般にストアの新しいインスタンスを作成する必要はありません。多くの場合、モデル要素またはリンクの Store のプロパティからストアへのアクセスを取得します。規則とイベントのイベント引数は規則やイベントが関連する、ストアと TransactionManager にアクセスするには、ストアのプロパティを使用して、要素またはリンクのインスタンスを提供します。

次の例では、ストアをインスタンス化する方法について説明します。ドメイン間に依存関係がある場合の 3 番目の例のように、ドメイン モデルは依存関係の順序で指定する必要がある、シミュレートします。

// 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 名前空間

その他の技術情報

[リダイレクト] 生成済み 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