cbp
cbp

Reputation: 25628

What options do I have for automating bindings with 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?

Upvotes: 8

Views: 863

Answers (1)

Dave Thieben
Dave Thieben

Reputation: 5427

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>();
        }

Upvotes: 7

Related Questions