共用方式為


設定一致和完成旗標

您可以在 IObjectContext 或 IContextState 介面上叫用方法,以設定一致且完成的旗標。 這兩個介面所使用的策略明顯不同。 IObjectContext 有四種方法可將一致且完成的旗標系結在一起的唯一組合,而 IContextState 有兩種方法可讓您獨立設定每個旗標。 IObjectContext 的方法也會透過 ObjectContext 對象公開。

為了獨立控制每個旗標, IContextState 會提供方法,將一致的旗標設定為 True 或 False,以及將完成的旗標設定為 True 或 False 的方法。 這些方法分別是 SetMyTransactionVoteSetDeactivateOnReturn IContextState 介面也包含擷取每個旗標目前值的方法。

當您將 SetMyTransactionVote 方法值設定為 TxCommit 時,COM+ 會驗證交易是否存在。 如果 COM+ 未偵測到交易,它會產生您可以在記錄檔中擷取的錯誤。 例如,假設有人不小心將元件的交易屬性設定為 [不支援],但您預期該屬性會設定為 [必要]。 藉由設定 SetMyTransactionVote = TxCommit,您可以識別衝突並採取行動。

下表描述可用來設定一致和完成旗標的方法呼叫。

一致旗標 完成旗標 IObjectContext 方法 IContextState 方法
True
False
EnableCommit
SetMyTransactionVotetxVote = TxCommit
SetDeactivateOnReturnbDeactivate = False
False
False
DisableCommit
SetMyTransactionVotetxVote = TxAbort
SetDeactivateOnReturnbDeactivate = False
False
True
SetAbort
SetMyTransactionVotetxVote = TxAbort
SetDeactivateOnReturnbDeactivate = True
True
True
SetComplete
SetMyTransactionVotetxVote = TxCommit
SetDeactivateOnReturnbDeactivate = True

注意

在方法層級設定的自動完成屬性可能會影響設定一致和完成旗標的方式。 如需自動完成屬性的詳細資訊,請參閱 為方法 啟用自動完成和 設定完成位