次の方法で共有


Store クラス

ストアには、1 つ以上のモデルの、要素およびリンクのメモリ内表現が含まれます。

継承階層

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[]) 指定した serviceProvider に IServiceProvider の実装を代行させる Store クラスのインスタンスを作成します。

このページのトップへ

プロパティ

  名前 説明
パブリック プロパティ ChangeSource ストア内の操作の現在の変更ソースを取得します。
パブリック プロパティ CurrentContext ストアの現在のコンテキストを取得します。
パブリック プロパティ DefaultPartition ストアの既定のパーティションを取得または設定します。
パブリック プロパティ DemandLoading ストアが現在、リレーションシップの読み込みを要求しているかどうかを取得します。
パブリック プロパティ Disposed ストアが破棄されたかどうかを取得します。
パブリック プロパティ DomainDataDirectory ストアのドメイン情報ディレクトリを取得します。
パブリック プロパティ DomainModels このストアのドメイン モデルのコレクションを取得します。
パブリック プロパティ ElementDirectory ストアに含まれている要素のディレクトリを取得します。
パブリック プロパティ ElementFactory モデルの要素ファクトリを取得します。
パブリック プロパティ 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 の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド PopContext スタックの最上位から現在のコンテキストを削除します。
パブリック メソッド PushContext ストア コンテキスト スタックの上部に新しいコンテキストをプッシュします。
パブリック メソッド RegisterTransactionLog クライアントがこのストアのイベントの通知を受け取るトランザクション ログを登録できるようにします。
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッド UnregisterTransactionLog クライアントがこのストアのイベントの通知を受け取るトランザクション ログの登録を解除できるようにします。

このページのトップへ

イベント

  名前 説明
パブリック イベント StoreDisposing ストアによって破棄されるときに発生します。

このページのトップへ

Extension のメソッド

  名前 説明
パブリック Extension メソッド GetLocks この Store インスタンスのロック フラグを取得します (ImmutabilityExtensionMethods によって定義されています。)
パブリック Extension メソッド IsLocked このストアに、指定した一連のロックがあるかどうかをテストします。 (ImmutabilityExtensionMethods によって定義されています。)
パブリック Extension メソッド SetLocks この Store インスタンスのロック フラグを設定します。 (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