我有一些现有的C#代码,希望通过COM互操作公开,以便可以从Excel VBA调用。由于我将执行许多嵌套的批量更新操作,因此需要支持事务,并且为了最小化在C#级别上所需的重构,我想使用TransactionScope方法:
使用Transaction Scope实现隐式事务 http://msdn.microsoft.com/en-us/library/ms172152.aspx
TransactionScope类提供了一种简单的方式来标记一个代码块参与事务,而不需要你与事务本身进行交互。事务范围可以自动选择和管理环境事务。由于其易用性和效率,建议在开发事务应用程序时使用TransactionScope类。
此外,您无需显式地使用事务注册资源。任何System.Transactions资源管理器(如SQL Server 2005)都可以检测到由作用域创建的环境事务的存在并自动注册。
我的问题是:在VBA代码中是否可以启动TransactionScope(或通过COM互操作调用c#方法来实例化和返回TransactionScope对象),然后继续通过COM互操作调用各种其他c#对象,这些对象都将自动参与单个根事务?
使用Transaction Scope实现隐式事务 http://msdn.microsoft.com/en-us/library/ms172152.aspx
TransactionScope类提供了一种简单的方式来标记一个代码块参与事务,而不需要你与事务本身进行交互。事务范围可以自动选择和管理环境事务。由于其易用性和效率,建议在开发事务应用程序时使用TransactionScope类。
此外,您无需显式地使用事务注册资源。任何System.Transactions资源管理器(如SQL Server 2005)都可以检测到由作用域创建的环境事务的存在并自动注册。
我的问题是:在VBA代码中是否可以启动TransactionScope(或通过COM互操作调用c#方法来实例化和返回TransactionScope对象),然后继续通过COM互操作调用各种其他c#对象,这些对象都将自动参与单个根事务?