왜 기본 팩토리가 이 아니겠습니까?은 네임 스페이스가있는 컨트롤러의 전체 이름을 반환하지 않습니까? Service Locator 및 Autofac을 사용하고 있습니다. 영역이있는 MVC 2 Beta DefaultControllerFactory
using System.Web.Mvc;
using Microsoft.Practices.ServiceLocation;
namespace Application.Core.MVC
{
public override IController CreateController(System.Web.Routing.RequestContext requestContext, string **controllerName**)
{
return ServiceLocator.Current.GetInstance<IController>(controllerName);
}
}
나는 모두 위의 코드에 완전 수식 명없이 전용 "홈"을 반환 컨트롤러 명이 홈 컨트롤러 (지역 블로그 미만)
했다. 종속성 주입에 대한 regiser 컨트롤러의 이름을 시도 할 때 문제가 발생합니다. 다음은이 상황에 따라 컨트롤러를 지금 등록하는 방법입니다. 이 경우에도 예외없이 페이지가 표시됩니다. 그러나 http://localhost/Home에 액세스하면 두 컨트롤러가 모두 호출됩니다.
foreach (var tp in currentAssemblyControllersTypes)
builder.Register(tp).FactoryScoped().Named(tp.Name.Replace("Controller", ""));
누구든지 도움을받을 수 있습니까?
감사합니다. 그냥 GetControllerInstance() 사용해야합니다. – stoto