0

컨트롤러 생성자에 몇 가지 매개 변수를 추가해야하는 일부 컨트롤러를 수정하고 싶습니다. 매개 변수를 더 추가하면 작동하지 않습니다. 내가 잘 작동하도록 매개 변수 (ioc의 경우)를 매핑해야하는 곳을 제안 할 수 있습니까?SmartStore.Net의 컨트롤러 수정 (종속성 삽입)

+1

"작동하지 않음"은 무엇을 의미합니까? 또한 몇 가지 코드를 보여주십시오. –

답변

1

가장 좋은 방법은 IControllerFactory 인터페이스, 특히 GetControllerInstance 메서드를 구현하는 것입니다. 종종 가장 쉬운 방법은 DefaultControllerfactory에서 파생시키는 것입니다.

protected override IController GetControllerInstance(
    RequestContext requestContext, Type controllerType) 
{ 
    if (controllerType == typeof(FooController)) 
    { 
     return new FooController(new BarService(), new BazProvider()); 
    } 
    if (controllerType == typeof(QuxController)) 
    { 
     return new QuxController(new QuuxRepository, new CorgeProvider()); 
    } 
    // etc. 
    return base.GetControllerInstance(requestContext, controllerType); 
} 

그런 다음 당신은 당신의 새로운 사용자 지정 공장에 대해 ASP.NET MVC 말할 필요 :

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

당신은 my book 7 장에서 이에 대한 자세한 내용을 읽을 수 있습니다.