繼承的交易
封裝可使用「執行封裝」工作執行另一個封裝。子封裝 (亦即「執行封裝」工作所執行的封裝) 可建立其自己的封裝交易,也可以繼承父封裝交易。
如果下列兩個情況均成立,則子封裝將會繼承父封裝交易:
- 由一「執行封裝」工作叫用 (Invoke) 該封裝。
- 叫用該封裝的「執行封裝」工作亦聯結父封裝交易。
除非子封裝自行聯結交易,否則子封裝中的容器和工作無法聯結父封裝交易。
在下圖中,有三個使用交易的封裝。每一個封裝都包含多個工作。為強調交易的行為,只會顯示「執行封裝」工作。封裝 A 執行封裝 B 和 C。而封裝 B 又執行封裝 D 和 E,封裝 C 執行封裝 F。
封裝和工作具有下列交易屬性:
- 在封裝 A 和 C 上,TransactionOption 設為 Required。
- 在封裝 B 和 D 上,以及在「執行封裝 B」、「執行封裝 D」和「執行封裝 F」工作上,TransactionOption 設為 Supported。
- 在封裝 E 上,以及在「執行封裝 C」和「執行封裝 E」工作上,TransactionOption 設為 NotSupported。
只有封裝 B、D 和 F 可從其父封裝繼承交易。
封裝 B 和 D 會繼承由封裝 A 啟動的交易。
封裝 F 會繼承由封裝 C 啟動的交易。
封裝 A 和 C 會控制其自己的交易。
封裝 E 不使用交易。