내 응용 프로그램에 대한 StructureMap
을 사용하기로 결정했습니다.
을 내 자신의 CustomFactory 클래스를 만듭니다 :
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(Type controllerType)
{
if (controllerType == null)
{
return base.GetControllerInstance(controllerType);
}
try
{
return ObjectFactory.GetInstance(controllerType) as Controller;
}
catch (StructureMapException ex)
{
throw;
}
}
}
는 모든 인터페이스 내 어셈블리의 구현을 등록 할 StructureMap 규칙을 사용하여 부트 스트 래퍼를 만들고 여기에 내가 그것을 작동하도록했던 한 내용입니다. (나는이에 blog post을 게시 한) : Global.asax.cs에서
public class StructureMapBootstrapper : IBootstrapper
{
private static bool hasStarted;
public void BootstrapStructureMap()
{
ObjectFactory.Initialize(x =>
{
x.AddRegistry<FactoryRegistry>();
});
}
public static void Restart()
{
if (hasStarted)
{
ObjectFactory.ResetDefaults();
}
else
{
Bootstrap();
hasStarted = true;
}
}
public static void Bootstrap()
{
new StructureMapBootstrapper().BootstrapStructureMap();
}
}
public class FactoryRegistry : Registry
{
public FactoryRegistry()
{
Scan(s =>
{
s.Assembly("Calendar.Library");
s.TheCallingAssembly();
s.AddAllTypesOf<IController>().NameBy(type => type.Name.Replace("Controller", "").ToLower());
s.WithDefaultConventions();
});
}
}
등록 StructureMap : 나는 여기에 내 질문을 게시하기 전에이 페이지의 오른쪽에보고 된 것을 기대했다
protected void Application_Start()
{
StructureMapBootstrapper.Bootstrap();
ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
}
누군가 나를 올바른 버전으로 안내 할 것입니다. 너무 나쁘다는 것은 지원되지 않습니다. StructureMap은 ASP.NET MVC 1을 지원합니까? 감사. – Saxman
모르겠다 - 결코 사용하지 않았다 ... –