MSDN может вводить в заблуждение.Регистрация события должна быть, по крайней мере, такой же быстрой, как и привлечение фиктивного менеджера ресурсов (не то чтобы я это проверял).
Дело в том, что, если вы подключитесь, транзакция станет распределенной (поскольку сейчас задействовано как минимум два менеджера ресурсов).Такая транзакция медленнее (больше ввода-вывода с сервером базы данных или чем-либо, с чем вы когда-либо работали).
Вы все равно можете попробовать способ зачисления.Просто внедрите IEnlistmentNotification
и вызовите enlistment.Done()
в каждом методе.Вы также захотите добавить свой код в метод Commit()
.
Затем передать ссылку на вашу реализацию в метод транзакции EnlistVolatile(..)
(с параметрами, установленными в None
).