Установка Ninject Binding - PullRequest
       19

Установка Ninject Binding

1 голос
/ 07 февраля 2012

У меня странный случай, когда я использую NInject, и я не уверен, что делать дальше. Наши репозитории в этом случае являются собственно написанными генераторами sql и не используют linq to sql; nHibernate и т. д.

Чтобы использовать код в системе, мы, в рамках реализации репозиториев, внедряем необходимые репозитории для создания дочерних объектов (например, объекту «порядок» нужно получить свои объекты «порядок заказа» и назначить его). перед возвратом в область вызова в системе, поэтому в нашем OrderRepository у нас есть [Inject] IOrderDetailRepository OrderDetailRepo {get; set;}).

До этого момента зависание происходит до тех пор, пока мы не сможем сохранить все настроенное InRequestScope (). Теперь мы используем цикл Parallel ForEach и после завершения итерации запускаем событие в обработчик событий с одной областью действия для обновления базы данных. Мы сделали бы обновление в цикле, но пытались избежать связывания цикла с определенной областью в системе, так как может быть много областей, которые могли бы использовать этот цикл.

Итак, нам нужно выяснить, когда мы вызываем этот обработчик событий с одноэлементной областью действия, как настроить ninject, чтобы все IRepositories (IOrderRepository и IOrderDetailRepository), используемые в этом обработчике одноэлементного события, отключались и инициировали немедленно, когда они используются.

Есть ли подсказки?


Итак, у меня есть разрешение "А", но я не доволен разрешением для этого ... то, что я сделал, - это построил ChildKernel, а затем установил привязки так, как я хотел, чтобы они были. Хотя это работает, как и ожидалось, похоже на какой-то серьезный «запах кода». Хотелось бы увидеть лучший способ справиться с этим сценарием, если бы он существовал.

...