Skip to content

CodeAnimal/Ninject.Extensions.DependencyInjection

Repository files navigation

Ninject.Extensions.DependencyInjection

GitHub CI

Overview

This repo is based on https://github.com/lord-executor/Ninject.Web.AspNetCore which has the original work.

This project provides full Ninject integration with .NET Core projects. This integrates .NET Core service collection with the Ninject kernel and uses Ninject's kernel as the service provider.

Examples

Simple Program.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Ninject;
using Ninject.Extensions.DependencyInjection;

var builder = WebApplication.CreateBuilder(args);

builder.Host
    .UseServiceProviderFactory(new NinjectServiceProviderFactory())
    .ConfigureContainer<IKernel>(kernel =>
    {
        // Ninject Binding here
        // kernel.Bind<IServiceA>().To<ServiceA>();
    });

// ServiceCollection Binding here
// builder.Services
//     .AddTransient<IServiceB, ServiceB>();

builder.Services.AddMvc();

var app = builder.Build();

app.UseRouting()
    .UseEndpoints(endpoints => endpoints.MapControllers());

await app.RunAsync();

With Startup.cs file

Program.cs

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Ninject.Extensions.DependencyInjection;

var builder = Host.CreateDefaultBuilder(args);

builder
    .UseServiceProviderFactory(new NinjectServiceProviderFactory())
    .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());

var app = builder.Build();

await app.RunAsync().ConfigureAwait(false);

Startup.cs

public class Startup
{
    public static void Configure(IApplicationBuilder app)
    {
        app.UseRouting()
           .UseEndpoints(endpoints => endpoints.MapControllers());
    }

    public static void ConfigureServices(IServiceCollection services)
    {
        // ServiceCollection Binding here
        // builder.Services
        //     .AddTransient<IServiceB, ServiceB>();
        
        services.AddMvc();
    }

    public static void ConfigureContainer(IKernel builder)
    {
        // Ninject Binding here
        // kernel.Bind<IServiceA>().To<ServiceA>();
    }
}

About

Ninject integration of the the .NET Core dependency injection abstraction.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages