2012-12-24 1 views
0

ASP.NET MVC 웹 응용 프로그램에 IoC 용 Ninject를 사용하고 싶습니다. 다음 코드 샘플을 가지고 :Ninject가 너무 방해적입니까?

// resides in a MyApplication.Web assembly 
public class SomeController { 
    ... 
    public ActionResult myControllerAction() { 
    Service service = <--- should this be instantiated by Ninject? 
    service.doSomeLogic(); 
    ... 
    } 
} 

// resides MyApplication.Common assembly 
public class Service { 
    public void doSomeLogic() { 
    ... 
    } 
} 

내 관심사는 내가 가능하면 모두 어셈블리, Ninject에의 의존성을 갖고 싶어하지 않는다는 것입니다. 나 .Web 프로젝트가 .inf 파일에 종속성을 가지도록하고 싶지만, .Common 어셈블리는 허용하지 않는 것 같다.

여기에서 사용하는 전략은 무엇입니까?

답변

3

생성되는 서비스가 Ninject에 종속 될 필요는 없습니다. 웹 프로젝트 만이 필요합니다. 컨트롤러 (및 서비스, 또한 종속성이있는 경우)에 생성자 주입을 사용해야합니다. global.asax의 웹 프로젝트에서 호출하거나, 거기에서 호출 된 구성 클래스를 연결할 수 있습니다. 서비스를 구성하려면 을 사용하고 examples을 따르십시오.

public class SomeController { 

    private readonly Service _service; 

    public SomeController(Service service) 
    { 
     _service = service; 
    } 

    public ActionResult myControllerAction() { 
    _service.doSomeLogic(); 
    ... 
    } 
} 
+0

저는이 답변을 많이 좋아합니다. 글로벌 asax에서 생성자 주입의 배선을 수행하는 방법에 대한 구체적인 예가 있습니까? –

관련 문제