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 のメソッド
名前 | 説明 | |
---|---|---|
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) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。