Это просто то, о чем я думал и задавался вопросом, существует ли оно, или даже если оно вообще полезно.
Я делаю инверсию управления и внедрение зависимостей, используя Unity.Я также делаю ORM с беглым nHibernate.Мне было интересно, есть ли способ либо сконфигурировать nHibernate, чтобы брать интерфейсы в качестве параметров его типа и делать IoC для меня, либо каков наилучший способ их использования вместе.
Например, если бы у меня былобъект customer, использующий шаблон репозитория, возможно, у меня будет 2 интерфейса (ICustomer, ICustomerRepository), а также 2 конкретные реализации (Customer, CustomerRepository).В конкретном CustomerRepository мне пришлось бы привязать его непосредственно к объекту Customer, чтобы использовать nHIbernate.
public class CustomerRepository : ICustomerRepository
{
public ICustomer Retrieve(int id)
{
return _session.Get<Customer>(id);
}
}
Вместо передачи «Customer» в качестве параметра типа для сеанса, я думаю, что это было бы здоровочтобы пропустить "ICustomer" и каким-то образом настроить niber на ioC.Это вообще возможно или вообще выгодно?