Преобразовать этот установщик Castle Windsor в Ninject, чтобы зарегистрировать все репозитории - PullRequest
1 голос
/ 20 января 2011

У меня есть это в моем приложении MVC2, но я думаю, что могу перейти на Ninject, поскольку он становится все более популярным, а Castle Windsor кажется немного сложнее.

Как бы я сделал что-то подобное в Ninject?

Возможно, Виндзорский замок более развит, и я должен придерживаться его.

container.Register(AllTypes.FromThisAssembly()
               .Where(type => type.Name.EndsWith("Repository"))
               .WithService.DefaultInterface()
               .Configure(c => c.LifeStyle.PerWebRequest));                   

Ответы [ 2 ]

3 голосов
/ 24 января 2011

То, что вы хотите сделать, можно сделать с помощью расширения Ninjec.Convention.

https://github.com/ninject/ninject.extensions.conventions

http://innovatian.com/2009/09/conventions-based-binding-with-ninject-2-0-2/

http://innovatian.com/2010/02/ninject-extensions-conventions-preview/

0 голосов
/ 22 мая 2015

Вам необходимо импортировать пространство имен Ninject.Extensions.Conventions из https://github.com/ninject/ninject.extensions.conventions Тогда:

Kernel.Bind(x => x
            .FromThisAssembly()
            .SelectAllClasses().EndingWith("Repository")
            .BindDefaultInterface());
...