티스토리 뷰

💼 정보 ver1.0

Ioc 컨테이너 설정] Ninject

James Wetzel 2013. 6. 15. 02:24
728x90
반응형

[NinjectControllerFactory 클래스 파일 추가]

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;


using Ninject;

using NinjectTest.Controllers;


namespace NinjectTest.Models

{

    public class NinjectControllerFactory : DefaultControllerFactory

    {

        private IKernel ninjectKernel;


        public NinjectControllerFactory()

        {

            this.ninjectKernel = new StandardKernel();

            AddBindings();

        }


        protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)

        {

            return controllerType == null ? null : (IController)this.ninjectKernel.Get(controllerType);

        }


        private void AddBindings()

        {

//Todo: 추가 바인딩 코드

            this.ninjectKernel.Bind<IUser>().To<UserImplement>();

        }

    }

}


[Global.asax 수정]

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Http;

using System.Web.Mvc;

using System.Web.Routing;

using NinjectTest.Models;


namespace NinjectTest

{

    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 

    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication

    {

        protected void Application_Start()

        {

            AreaRegistration.RegisterAllAreas();


            WebApiConfig.Register(GlobalConfiguration.Configuration);

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

            RouteConfig.RegisterRoutes(RouteTable.Routes);


            ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());

        }

    }

}


[Ninject4.0 dll 참조 추가]


Ninject.dll


728x90
반응형