WCF, Ninject и жизненный цикл - PullRequest
       1

WCF, Ninject и жизненный цикл

1 голос
/ 23 декабря 2010

Я добавляю Ninject в мою службу WCF (размещенную в IIS).Я намерен, чтобы служба WCF автоматически создавала экземпляры моих классов репозитория NHibernate.

Первоначально я использовал Castle (и позднее Ninject) для создания экземпляров этих объектов в моем клиенте ASP.NET MVC и передачи их в класс обслуживания.В этом случае область действия была PerWebRequest (Замок) или InRequestScope (Ninject).Сеанс NHibernate будет неявно создан вместе с транзакцией, которая будет зафиксирована при удалении репозиториев.

Я хотел бы сохранить тот же подход, так как клиент неявно контролирует время жизни сеанса / транзакции путем обновления/ закрытие службы.

Будет ли работать один из существующих методов области действия Ninject (возможно, InThreadScope или InRequestScope)?Есть ли другой способ достичь этой цели?

1 Ответ

0 голосов
/ 23 декабря 2010

Я бы позволил клиенту явно контролировать время жизни таких объектов.Не вводите такой объект, а добавляйте фабрику, которая может создать такой объект для вас.Это следует принципу наименьшего удивления .См. этот SO-ответ для получения дополнительной информации.

...