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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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