Cha*_*bub 2 c# design-patterns
嗨,我在我的应用程序中的几个地方使用TransactionScope.喜欢:
using (var scope = new TransactionScope())
{
ToDo1();
ToDo2();
scope.Complete();
}
Run Code Online (Sandbox Code Playgroud)
我希望有可能在一个地方禁用我的所有TransactionScopes.
我想像MyTransactionScope类,我可以定义是否要使用它.
你能给我一个如何实现它的提示吗?
谢谢.
我做到了这一点.你不能继承,TransactionScope因为它是密封的.而是在类中包含MyTransactionScope类.还要实现,IDisposable这样你就可以使用construct来调用它.并揭露.Complete()和其他相关的方法.这些方法将在内部调用内部包含的对象.
public sealed class MyTransactionScope : IDisposable
{
TransactionScope _transactionScope = null;
#region Overloaded Constructors
public MyTransactionScope()
{
_transactionScope = new TransactionScope();
}
public MyTransactionScope(Transaction transactionToUse)
{
_transactionScope = new TransactionScope(transactionToUse);
}
#endregion
public void Complete()
{
_transactionScope.Complete();
}
public void Dispose()
{
_transactionScope.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)