TransactionScope с файлами в С#

Я использую TransactionScope для работы с базой данных, и мне приятно. Я ищу следующее:

using(var scope=new TransactionScope())
{               
    // Do something with a few files...
    scope.Complete();
}

но очевидно, что это не сработает - если есть 20 файлов, а исключение возникает в 9-м файле, все предыдущие 8 остаются измененными, а остальные неизменными - откат не выполняется. Итак, что было бы лучшим способом реализовать поведение, подобное видимости для файлов?

Я надеюсь, что есть простой ответ, но если нет, можете ли вы просто дать мне несколько указателей или указать мне на соответствующую статью?

Ответы

Ответ 2

Вы можете попробовать библиотеку .NET Transactional File Manager на Codeplex и NuGet. Он поддерживает любую файловую систему и не является оболочкой для Transactional NTFS.

Из описания проекта:

Transactional File Manager - это .NET API, поддерживающий в том числе файл системные операции, такие как копирование, перемещение, удаление, добавление и т.д. в сделка. Это реализация System.Transaction.IEnlistmentNotification(работает с System.Transactions.TransactionScope).