Как написать окружающие классы

Можно ли определить свои собственные классы окружающей среды?

Например, класс TransactionScope делает себя доступным для любого объекта, который реализует IEnlistmentNotification (я думаю), без какого-либо кода для явной передачи ссылки одного объекта другому.

Я не уверен, что мне когда-нибудь понадобится это использовать, но было бы интересно понять, как это работает (то есть, как я мог реализовать такую ​​функциональность в своем собственном коде). Это то, что мы можем встроить в наши собственные классы, или это было разработано на более низком уровне, чтобы позволить TransactionScope сделать что-то помимо того, что доступно на уровне "обычного разработчика"?

1 ответ

Решение

Пишу new TransactionScope() просто устанавливает статический Transaction.Current собственность

Другие классы могут проверить, не является ли это свойство нулевым, и подключиться к транзакции.

В этом нет никакой магии.

Другие вопросы по тегам