System.transactions - это только для поставщиков внешних транзакций, таких как базы данныхC#

Место общения программистов C#
Anonymous
System.transactions - это только для поставщиков внешних транзакций, таких как базы данных

Сообщение Anonymous »

Я немного читал о System.transactions при написании транзакционного приложения. Я понимаю, что это для транзакционного кода, например, он интегрируется с транзакциями SQL из коробки. System.transactions .
Другими словами, можем ли мы написать какой -то чистый, транзакционный код C# (без вызова внешних ресурсов, таких как база данных), который будет влиять на какие -то транзакции? /> Чтобы прояснить его, я хочу просто пример 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>
Может быть, написание в файловую систему будет вариантом здесь? Но я не мог найти ничего полезного. Что-то вроде (но также не работает с транзакциями): < /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

Вернуться в «C#»