Как написать окружающие классы
Можно ли определить свои собственные классы окружающей среды?
Например, класс TransactionScope делает себя доступным для любого объекта, который реализует IEnlistmentNotification (я думаю), без какого-либо кода для явной передачи ссылки одного объекта другому.
Я не уверен, что мне когда-нибудь понадобится это использовать, но было бы интересно понять, как это работает (то есть, как я мог реализовать такую функциональность в своем собственном коде). Это то, что мы можем встроить в наши собственные классы, или это было разработано на более низком уровне, чтобы позволить TransactionScope сделать что-то помимо того, что доступно на уровне "обычного разработчика"?
1 ответ
Пишу new TransactionScope()
просто устанавливает статический Transaction.Current
собственность
Другие классы могут проверить, не является ли это свойство нулевым, и подключиться к транзакции.
В этом нет никакой магии.