Skip to content

Instantly share code, notes, and snippets.

@a-h
Last active August 29, 2015 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save a-h/3b735c5ab03e557a4846 to your computer and use it in GitHub Desktop.
Save a-h/3b735c5ab03e557a4846 to your computer and use it in GitHub Desktop.
Ninject to Simple Injector
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(Service.App_Start.NinjectWebCommon), "Start")]
[assembly: WebActivatorEx.ApplicationShutdownMethodAttribute(typeof(Service.App_Start.NinjectWebCommon), "Stop")]
// Once it's building, rename the class away from Ninject.
public static class NinjectWebCommon
{
// -- Ninject
// private static readonly Bootstrapper bootstrapper = new Bootstrapper();
public static void Start()
{
// -- Ninject
/*
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
*/
// ++ Simple Injector
CreateContainer();
}
public static void Stop()
{
// -- Ninject.
// bootstrapper.ShutDown();
}
// -- Ninject
/*
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<ILog>().ToMethod(c => LogManager.GetLogger(typeof(NinjectWebCommon)));
kernel.Bind<IEntities>().To<Entities>();
}
*/
// ++ Simple Injector
private static Container CreateContainer()
{
// Create the container as usual.
var container = new Container();
RegisterServices(container);
// Setup MVC.
container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
container.RegisterMvcIntegratedFilterProvider();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
// Setup WebApi.
container.RegisterWebApiControllers(GlobalConfiguration.Configuration);
GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
// Register filters (if you've used them).
RegisterGlobalFilters(GlobalFilters.Filters, container);
RegisterWebApiFilters(GlobalConfiguration.Configuration.Filters, container);
// Setup WCF.
SimpleInjectorServiceHostFactory.SetContainer(container);
return container;
}
private static void RegisterServices(Container container)
{
container.RegisterSingle<ILog>(() => LogManager.GetLogger(typeof(NinjectWebCommon)));
container.Register<IEntities, Entities>();
}
public static void RegisterGlobalFilters(GlobalFilterCollection filters, Container container)
{
filters.Add(container.GetInstance<SessionFilter>());
}
private static void RegisterWebApiFilters(System.Web.Http.Filters.HttpFilterCollection httpFilterCollection, Container container)
{
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment