Вы зарегистрировали Func<IReviewingServiceFactory>
вместо IReviewingServiceFactory
... попробуйте заменить
container.Register(Component.For<Func<IReviewingServiceFactory>>().AsFactory());
с
container.Register(Component.For<IReviewingServiceFactory>().AsFactory());
и соответствующим образом адаптировать код - тогда он должен работать.
Да, и еще одна вещь - вы зарегистрировали свой IReviewingService
без указания образа жизни, который по умолчанию будет SINGLETON. Скорее всего, это , а не , что вы хотите, потому что тогда ваш аргумент reviews
будет передан экземпляру только при создании , что происходит только при первом вызове фабрики ...! Дополнительные вызовы на завод вернут экземпляр Singleton.
Поэтому: измените стиль жизни IReviewingService
на переходный, И создайте соответствующую подпись метода деблокирования на заводском интерфейсе (например, void Destroy(IReviewingService service)
).