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 | 安全性關鍵。建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。 (繼承自 MarshalByRefObject)。 | |
Dispose | 處置交易的狀態。 | |
Equals | 判斷指定的物件是否等於目前物件。 (繼承自 Object)。 | |
Finalize | 終結交易。 (覆寫 Object.Finalize()。) | |
GetHashCode | 做為特定型別的雜湊函式。 (繼承自 Object)。 | |
GetLifetimeService | 安全性關鍵。擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。 (繼承自 MarshalByRefObject)。 | |
GetType | 取得目前執行個體的 Type。 (繼承自 Object)。 | |
InitializeLifetimeService | 安全性關鍵。取得存留期服務物件來控制這個執行個體的存留期原則。 (繼承自 MarshalByRefObject)。 | |
MemberwiseClone() | 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。 | |
MemberwiseClone(Boolean) | 建立目前 MarshalByRefObject 物件的淺層複本。 (繼承自 MarshalByRefObject)。 | |
Rollback | 儲存區將上一步就是建立交易時的狀態。 | |
ToString | 傳回表示目前物件的字串。 (繼承自 Object)。 |
回頁首
擴充方法
名稱 | 說明 | |
---|---|---|
GetSerializationContext | 取得指定的交易內容中使用的 SerializationContext。SerializationContext 會儲存在序列化交易 TranactionContext。如果交易巢狀交易堆疊會搜尋以找出最接近的封入具有 SerializationContext 的序列化交易。 (以 SerializationContextTransactionExtensions 定義。) |
回頁首
備註
交易可讓您以群組的變更。 它也會追蹤的讓他們可以復原在稍後的階段會在交易中執行的動作。
存放區的變更,都必須在交易中完成。 存放區的變更只有當交易認可。 異動可具有本機交易被認可或最上層的交易被認可時,接受變更的儲存區。 在 [最上層的交易巢狀本機交易。 巢狀的交易必須認可或復原上一步之前下一個最上層交易可以認可或復原。 如需詳細資訊,請參閱範例TransactionDepth屬性。
交易也會追蹤的所發生的動作。 這可讓復原了,或在稍後的階段,以取消復原動作的一群UndoManager屬性。
交易應該受到處置。 這可透過使用Dispose方法,或是建立中的交易Using建構。 如果在處置時,尚未認可的交易,會自動復原交易,並會取消任何所做的變更。
範例
下列範例會示範修改儲存區的交易。 交易已認可。 如果交易已復原的則會取消至存放區的任何變更。 交易的結尾會自動處置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。
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。