在下面的代码中,我是否需要这两种方法才能在失败时实现回滚?或者
Using
-End Using
已经涵盖了这种情况?
Public Function ProcessMultipleMessages() As String
Dim messages = GetObjectFromXml(Of ItemList)()
Using transaction = CreateTransactionScope()
For Each message In messages.SpecialItems
Dim errorMsg = ProcessSingleMessage(message)
If Not String.IsNullOrEmpty(errorMsg) Then
transaction.Dispose() '<--- Here
Return result
End If
Next
transaction.Complete() '<--- Here
End Using
Return String.Empty
End Function