У вас есть общий базовый класс, который может реализовывать как NHibernate.ITransaction, так и MyFramework.ITransaction?Я не знаю, что я бы создал общий базовый класс по единственной причине реализации обоих этих интерфейсов, но если у вас уже есть общий базовый класс по другим причинам, почему бы и нет?
MyFramework.ITransaction может унаследоватьиз NHIbernate.ITransaction, гарантируя, что все разработчики MyFramework.ITransaction также будут разработчиками, если NHibernate.ITransaction.
Наконец, вы можете реализовать шаблон адаптера с ITransactionWraper и двумя разработчиками (MyFrameworkTransactionWrapper и NHibernateTransactionWrapper).Весь ваш код будет записан в интерфейс ITransactionWrapper, а его разработчики будут делегировать вызовы правильной транзакции ITransaction.Как и в большинстве реализаций шаблонов адаптера, вы, вероятно, будете использовать шаблон Factory или AbstractFactory для создания правильной обертки во время выполнения, в зависимости от конфигурации.