0
컨트롤러 생성자에 몇 가지 매개 변수를 추가해야하는 일부 컨트롤러를 수정하고 싶습니다. 매개 변수를 더 추가하면 작동하지 않습니다. 내가 잘 작동하도록 매개 변수 (ioc의 경우)를 매핑해야하는 곳을 제안 할 수 있습니까?SmartStore.Net의 컨트롤러 수정 (종속성 삽입)
컨트롤러 생성자에 몇 가지 매개 변수를 추가해야하는 일부 컨트롤러를 수정하고 싶습니다. 매개 변수를 더 추가하면 작동하지 않습니다. 내가 잘 작동하도록 매개 변수 (ioc의 경우)를 매핑해야하는 곳을 제안 할 수 있습니까?SmartStore.Net의 컨트롤러 수정 (종속성 삽입)
가장 좋은 방법은 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 장에서 이에 대한 자세한 내용을 읽을 수 있습니다.
"작동하지 않음"은 무엇을 의미합니까? 또한 몇 가지 코드를 보여주십시오. –