Проблема в том, что я немного читал о System. Я не понимаю, что он предназначен для транзакционного кода, например, он интегрируется с транзакциями SQL из коробки. System.transactions .
Другими словами, можем ли мы написать какой -то чистый, транзакционный код C# (без вызова внешних ресурсов, таких как база данных), который будет влиять на какие -то транзакции? /> edit < /h1>
Чтобы прояснить его, я хочу просто C# пример без DBS или других третьих сторон, которые выглядели бы в этом (конечно, это псевдо-код) < /p>
Код: Выделить всё
var x = 0;
using (var t = new TransactionScope())
{
// Do some transactional work
x++;
// Note no t.Complete() call, so transaction would be rolled back
}
// Here transactional work would be undone, due to transaction being not commited,
// so x would be still 0
< /code>
edit 2 < /h1>
Может быть, здесь будет вариант? Но я не мог найти ничего полезного. Что-то вроде (но также не работает с транзакциями): < /p>
using (var t = new TransactionScope())
{
// Do some transactional work
File.WriteAllText("path", "content");
// Note no t.Complete() call, so transaction would be rolled back
}
// Here transactional work would be undone, due to transaction being not commited,
// so the file should not be changed.
Я знаю, что мы можем выполнить код в Commit (или Oflback), внедрив ienlistmentnotification , но это будут просто вызовы, выполненные на конкретных событиях. Я хочу код без использования ienlistmentnotification , который будет заплачен или откат.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... uch-as-dat