Thử nghiệm với mới nhất Ninject: Tạo một ứng dụng Web rỗng và chọn hộp kiểm cho MVC và Web Api
Install NuGet Package: Ninject.Web.WebApi.WebHost
Install NuGet Package: WebActivatorEx
Tạo một lớp trong App_Start tên NinjectWebCommon.cs
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(NinjectWebCommon), "Start")]
[assembly: WebActivatorEx.ApplicationShutdownMethodAttribute(typeof(NinjectWebCommon), "Stop")]
namespace <YOURNAMESPACE>
{
public static class NinjectWebCommon
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
public static void Stop()
{
bootstrapper.ShutDown();
}
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx =>() => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
private static void RegisterServices(IKernel kernel)
{
//kernel.Bind<IRepo>().ToMethod(ctx => new Repo("Ninject Rocks!"));
}
}
}
Cấu hình DI bạn trong RegisterServices
Thêm phụ thuộc vào MVC hoặc Web Api thông số điều khiển constructor
Hy vọng nó giúp, cảm ơn.
Tôi không thể tìm ra cách * giải quyết * phụ thuộc. – Alisson