C# – System.Transactions.TransactionScope
我对TransactionScope类感到好奇。
在大多数情况下,我认为它是用于数据库连接(这是我用过的)。
我的问题是,您是否可以将任何代码放在TransactionScope的使用块中以使其成为事务性的? MS文档不清楚。
如果它可以用于制作除数据库连接之外的代码事务,那么支持哪些代码呢? 如果它可以使System.IO.File操作事务性,那对我来说似乎很疯狂。
TransactionScope不仅适用于数据库。 实现IEnlistmentNotification接口的每个组件都可以参与事务范围的两阶段提交。
以下是事务性内存存储的示例: http : //www.codeproject.com/KB/dotnet/Transactional_Repository.aspx
另外,我不确定.NET中是否有用于事务性文件IO的组件,但是实现这样的组件非常容易 – 像Vista和Windows Server 2008这样的最新操作系统支持事务文件IO。
不,您不能通过在TransactionScope
运行任意代码TransactionScope
。
正如您在评论中所述, System.Transactions
命名空间提供了基础结构类,以帮助使任何资源进行事务处理 。 默认情况下,.NET为几种操作提供资源管理器支持,列在您链接的命名空间简介中(在注释中):“SQL Server,ADO.NET,MSMQ和Microsoft分布式事务处理协调器(MSDTC)”。
事实certificate,支持文件系统事务 – 虽然我只能找到NTFS( 使用文件系统事务增强您的应用程序 )。 但是,对于我的钱,该代码可能会严重使用外观。 ;)也许还有其他更通用的实现(或许不是 – 使文件IO事务可能需要NTFS提供的额外基础结构)。
还有大量正在进行的关于对内存状态事务进行更改的研究,称为软件事务内存 。 Microsoft DevLabs提供了一种实现: STM.NET 。
上述就是C#学习教程:C# – System.Transactions.TransactionScope分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1005715.html