次の方法で共有


Transaction クラス

トランザクションは、ストアに対して実行された変更が、コミットまたはロールバックできるグループとして処理されていることを確認します。

継承階層

System.Object
  System.MarshalByRefObject
    Microsoft.VisualStudio.Modeling.Transaction

名前空間:  Microsoft.VisualStudio.Modeling
アセンブリ:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (Microsoft.VisualStudio.Modeling.Sdk.12.0.dll 内)

構文

'宣言
Public Class Transaction _
    Inherits MarshalByRefObject _
    Implements IDisposable
public class Transaction : MarshalByRefObject, 
    IDisposable

Transaction 型で公開されるメンバーは以下のとおりです。

プロパティ

  名前 説明
パブリック プロパティ Context トランザクションを取得し、クライアントがトランザクションにユーザー データを追加できるようにします。
パブリック プロパティ ContextInstance このトランザクションの Context を取得します。
パブリック プロパティ ForceAllRulesToCommitTime 現在のトランザクションの LocalCommit 時に入れ子になったすべての規則を強制的に発生させるフラグを取得または設定します。
パブリック プロパティ HasPendingChanges トランザクションを取得し、このトランザクション中にストアへの変更が行われたかどうかを確認します。
パブリック プロパティ HaveCommitTimeRulesFired コミット時の規則が適用されたかどうかを示します
パブリック プロパティ Id このトランザクションの ID を取得します。
パブリック プロパティ InRollback トランザクションを取得し、このトランザクションがロールバック中かどうかを確認します。
パブリック プロパティ IsActive トランザクションを取得し、このトランザクションが処理中かどうかを確認します。
パブリック プロパティ IsHidden トランザクションを取得し、トランザクションが非表示かどうかを確認します。
パブリック プロパティ IsNested トランザクションを取得し、トランザクションが別のトランザクションの入れ子になっているかどうかを確認します。
パブリック プロパティ IsSerializing トランザクションを取得し、トランザクションが現在シリアル化中かどうかを確認します。
パブリック プロパティ Name トランザクションの名前を取得または設定します。
パブリック プロパティ Parent 入れ子になったトランザクションに割り当てられているトップレベルのトランザクションを取得します。
パブリック プロパティ PartitionStates ストア内のすべてのパーティションの状態に関する情報を取得します。
パブリック プロパティ SequenceNumber トランザクションのシーケンス番号を取得します。
パブリック プロパティ Store トランザクションが属しているストアを取得します。
パブリック プロパティ TopLevelTransaction トランザクション階層の最上位のトランザクションを取得します。
パブリック プロパティ TransactionDepth このトランザクションが入れ子になっているトランザクションの数を取得します。

このページのトップへ

メソッド

  名前 説明
パブリック メソッド Commit トランザクションをコミットします。
パブリック メソッド CreateObjRef セキュリティ クリティカル。リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose トランザクションの状態を破棄します。
パブリック メソッド Equals 指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッド Finalize トランザクションを終了します。 (Object.Finalize() をオーバーライドします。)
パブリック メソッド GetHashCode 既定のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッド GetLifetimeService セキュリティ クリティカル。対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService セキュリティ クリティカル。対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
プロテクト メソッド MemberwiseClone() 現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッド MemberwiseClone(Boolean) 現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Rollback ストアは、トランザクションが作成されたときの状態に設定が戻されます。
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

Extension のメソッド

  名前 説明
パブリック Extension メソッド GetSerializationContext 指定したトランザクションのコンテキストでアクティブな SerializationContext を取得します。SerializationContext は、シリアル化しているトランザクションの TransactionContext に格納されます。トランザクションが入れ子になっている場合は、SerializationContext を持つ最も近い囲む側のシリアル化トランザクションを見つけるために、トランザクション スタックが検索されます。 (SerializationContextTransactionExtensions によって定義されています。)

このページのトップへ

解説

トランザクションは、変更をグループ化することができます。 また、後の段階で元に戻すことができるように、トランザクションで実行されるアクションを追跡します。

トランザクション ストアへの変更は必要があります。 ストアへの変更はトランザクションのコミット場合にのみ行われます。 トランザクションは、ローカル トランザクションをコミットまたはトップレベルのトランザクションのコミット時ストアに変更を適用することができます。 ローカル トランザクションはトップレベルのトランザクションに含まれています。 入れ子になったトランザクションは、次のトップレベルのトランザクションをコミットまたはロールバックする前にコミットまたはロールバックする必要があります。 詳細および例については、TransactionDepth プロパティの例を参照してください。

トランザクションは、発生したアクションを追跡します。 これは UndoManager のプロパティと後の段階で元に戻すまたはやり直しされたアクションのグループを有効にします。

トランザクションは破棄する必要があります。 これは Using の構成要素で Dispose のメソッドはトランザクションを作成して使用できます。できます。 破棄されると、トランザクションがコミットされていない場合、トランザクションは自動的にロールバックされ、すべての変更がキャンセル。

次の例ではストアを変更するトランザクションを示します。 トランザクションがコミットされる。 トランザクションをロールバックする場合、ストアへの変更がすべてクリックします。 トランザクションは using ブロックの末尾で自動的に破棄されます。

using (Transaction txCreateElem =  model.Store.TransactionManager.BeginTransaction("Create named element")
{
  A a = new A(store);
  a.Name = "Fred";
  // Commit the transaction and add the named element to the model
  txCreateElem.Commit();
}

例および詳細については、Using Transactionsを参照してください。

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

関連項目

Microsoft.VisualStudio.Modeling 名前空間