次の方法で共有


Transaction クラス

トランザクションはストアに対して行われた変更をコミットまたはロールバックできるグループとして扱うようになります。

継承階層

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

名前空間:  Microsoft.VisualStudio.Modeling
アセンブリ:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (Microsoft.VisualStudio.Modeling.Sdk.11.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 メソッド GetSerializationContext 指定されたトランザクションのコンテキストで SerializationContext をアクティブとして取得します。SerializationContext は、トランザクションのシリアル化の TranactionContext に格納されます。トランザクションが 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 名前空間