共用方式為


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) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling 命名空間