Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What options do I have for automating bindings with NInject

Tags:

ninject

Rather than manually having to bind every class, what methods and patterns, if any, are recommended for automatically setting up bindings?

For example, the vast majority of bindings simply look like this:

Bind<ICustomerRepository>.To<CustomerRepository>();

Once modules get large, you can end up with 100s of bindings that all look exactly the same. Can this be automated?

like image 346
cbp Avatar asked Jan 12 '11 01:01

cbp


1 Answers

check out the conventions extension: https://github.com/ninject/ninject.extensions.conventions

        using (IKernel kernel = new StandardKernel())
        {
            var scanner = new AssemblyScanner();
            scanner.From(Assembly.GetExecutingAssembly());
            scanner.BindWith<DefaultBindingGenerator>();
            kernel.Scan(scanner);
            var instance = kernel.Get<IDefaultConvention>();

            instance.ShouldNotBeNull();
            instance.ShouldBeInstanceOf<DefaultConvention>();
        }
like image 69
Dave Thieben Avatar answered Nov 14 '22 23:11

Dave Thieben