設定完成位
COM+ 會根據內容屬性的狀態停用 JIT 啟動的物件,完成的位,如下所示:
- 當完成的位設定為 True 時,COM+ 會在目前的方法呼叫傳回時停用 物件。
- 當完成的位設定為 False 時,當目前的方法呼叫傳回時,物件會保持作用中。
根據預設,當物件建立且其內容初始化時,完成的位會設定為 False。 (任何 JIT 啟動的物件都是在其本身的內容中建立,使其有自己的完成位來設定。不過,您可以使用自動完成屬性,根據每個方法變更此預設設定。 您可以透過下列方式設定完成的位:
- 使用 IContextState
- 使用 IObjectContext
- 使用自動完成屬性
使用 IContextState
您可以使用 IContextState::SetDeactivateOnReturn 將完成的位設定為 True 或 False。
您可以使用 IContextState::GetDeactivateOnReturn ,從物件內容取得已完成位的目前狀態。
使用 IObjectContext
您可以在 IObjectContext 上使用下列方法來設定完成的位,同時設定交易中用於投票的一致位:
- SetComplete 會指出您已完成,而且會投票認可目前的交易。 它會將完成位和一致的位設定為 True。
- SetAbort 會發出您完成的訊號,並註定要處理目前的交易。 它會將完成的位設定為 True,並將一致的位設定為 False。
- EnableCommit 表示您未完成,但會投票認可交易。 它會將完成的位設定為 False,並將一致的位設定為 True。
- DisableCommit 表示您未完成,且您目前投票不認可交易,通常是因為狀態不一致。 它會將完成位和一致的位設定為 False。
相關主題