Skip to content

Instantly share code, notes, and snippets.

@gon250
Last active August 29, 2015 14:17
Show Gist options
  • Select an option

  • Save gon250/da17337ff857688a54b2 to your computer and use it in GitHub Desktop.

Select an option

Save gon250/da17337ff857688a54b2 to your computer and use it in GitHub Desktop.

Revisions

  1. @remojansen remojansen renamed this gist Mar 13, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. @remojansen remojansen revised this gist Mar 13, 2015. 2 changed files with 49 additions and 0 deletions.
    30 changes: 30 additions & 0 deletions HttpDependencyResolver.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    public class HttpDependencyResolver : IDependencyResolver
    {
    private readonly IResolutionRoot _resolutionRoot;

    public HttpDependencyResolver(IResolutionRoot kernel)
    {
    this._resolutionRoot = kernel;
    }

    public object GetService(Type serviceType)
    {
    return _resolutionRoot.TryGet(serviceType);
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
    return _resolutionRoot.GetAll(serviceType);
    }

    public IDependencyScope BeginScope()
    {
    // This example does not support child scopes, so we simply return 'this'.
    return this;
    }

    public void Dispose()
    {
    // When BeginScope returns 'this', the Dispose method must be a no-op.
    }
    }
    19 changes: 19 additions & 0 deletions MvcDependencyResolver
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    public class MvcDependencyResolver : IDependencyResolver
    {
    private readonly IResolutionRoot _resolutionRoot;

    public MvcDependencyResolver(IResolutionRoot kernel)
    {
    this._resolutionRoot = kernel;
    }

    public object GetService(Type serviceType)
    {
    return _resolutionRoot.TryGet(serviceType);
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
    return _resolutionRoot.GetAll(serviceType);
    }
    }
  3. @remojansen remojansen revised this gist Mar 3, 2015. 1 changed file with 0 additions and 8 deletions.
    8 changes: 0 additions & 8 deletions Global.asax.cs
    Original file line number Diff line number Diff line change
    @@ -1,11 +1,3 @@
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Mvc;
    using System.Web.Routing;

    namespace Solution.CMS
    {
    public class MvcApplication : System.Web.HttpApplication
  4. @remojansen remojansen revised this gist Mar 3, 2015. 2 changed files with 2 additions and 3 deletions.
    2 changes: 1 addition & 1 deletion DependencyInjectionProvider.cs
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    namespace MMWebsites.IoC
    namespace Solution.IoC
    {
    public class DependencyInjectionProvider
    {
    3 changes: 1 addition & 2 deletions Global.asax.cs
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@
    using MMWebsites.IoC;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    @@ -7,7 +6,7 @@
    using System.Web.Mvc;
    using System.Web.Routing;

    namespace MMWebsites.CMS
    namespace Solution.CMS
    {
    public class MvcApplication : System.Web.HttpApplication
    {
  5. @remojansen remojansen revised this gist Mar 3, 2015. 1 changed file with 0 additions and 7 deletions.
    7 changes: 0 additions & 7 deletions DependencyInjectionProvider.cs
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,3 @@
    using Ninject;
    using MMWebsites.DAL.Helpers;
    using MMWebsites.DAL.Repository;
    using MMWebsites.Global.Contracts;
    using MMWebsites.Global.Helpers;


    namespace MMWebsites.IoC
    {
    public class DependencyInjectionProvider
  6. @remojansen remojansen revised this gist Feb 27, 2015. No changes.
  7. @remojansen remojansen created this gist Feb 27, 2015.
    50 changes: 50 additions & 0 deletions DependencyInjectionProvider.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,50 @@
    using Ninject;
    using MMWebsites.DAL.Helpers;
    using MMWebsites.DAL.Repository;
    using MMWebsites.Global.Contracts;
    using MMWebsites.Global.Helpers;


    namespace MMWebsites.IoC
    {
    public class DependencyInjectionProvider
    {
    private IKernel _kernel;

    private void SetUpDependencyInjection()
    {
    //create _kernel
    _kernel = new StandardKernel();

    //bindings
    _kernel.Bind<IJsDateHelper>().To<JsDateHelper>();
    _kernel.Bind<IDbHelper>().To<DbHelper>();
    _kernel.Bind<IUserRepository>().To<UserRepository>();
    _kernel.Bind<ISiteRepository>().To<SiteRepository>();
    _kernel.Bind<IClientDetailsRepository>().To<ClientDetailsRepository>();
    _kernel.Bind<IFileDetailsRepository>().To<FileDetailsRepository>();
    _kernel.Bind<IPublicationRepository>().To<PublicationRepository>();
    }

    public T Resolve<T>(System.Type service) {
    return (T)_kernel.Get(service);
    }

    public void Dispose()
    {
    _kernel.Dispose();
    }

    public System.Web.Mvc.IDependencyResolver GetMvcDependencyResolver()
    {
    SetUpDependencyInjection();
    return new MvcDependencyResolver(_kernel);
    }

    public System.Web.Http.Dependencies.IDependencyResolver GetHttpDependencyResolver()
    {
    SetUpDependencyInjection();
    return new HttpDependencyResolver(_kernel);
    }
    }
    }
    34 changes: 34 additions & 0 deletions Global.asax.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    using MMWebsites.IoC;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Mvc;
    using System.Web.Routing;

    namespace MMWebsites.CMS
    {
    public class MvcApplication : System.Web.HttpApplication
    {
    protected void Application_Start()
    {
    AreaRegistration.RegisterAllAreas();

    var dependencyInjectionProvider = new DependencyInjectionProvider();

    // Set MVC depencendy resolver for asp mvc web project
    DependencyResolver.SetResolver(dependencyInjectionProvider.GetMvcDependencyResolver());

    // Set MVC depencendy resolver for asp mvc web API project
    GlobalConfiguration.Configuration.DependencyResolver = dependencyInjectionProvider.GetHttpDependencyResolver();

    // Remove the XM Formatter from the web api
    GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);

    WebApiConfig.Register(GlobalConfiguration.Configuration);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
    }
    }