SimpleInjector: Injection nie działa z interfejsem API MVC 4 ASP.NET Web

Mam to ustawienie:

public static void Initialize(ISessionFactory factory)
{
    var container = new Container();
    InitializeContainer(container, factory);
    container.RegisterMvcControllers(
        Assembly.GetExecutingAssembly());
    container.RegisterMvcAttributeFilterProvider();
    container.Verify();
    DependencyResolver.SetResolver(
        new SimpleInjectorDependencyResolver(container));
}

private static void InitializeContainer(
    Container container, ISessionFactory factory)
{
    container.RegisterPerWebRequest<ISession>(
        () => factory.OpenSession(), true);
}

Wywoływana jest metoda InitializeApplication_Start:

public class WebApiApplication : HttpApplication
{
    protected void Application_Start()
    {
        SimpleInjectorInitializer.Initialize(
            new NHibernateHelper(
                Assembly.GetCallingAssembly(), 
                this.Server.MapPath("/"))
                .SessionFactory);

        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}

Ale kiedy próbuję wywołać akcję kontrolera, otrzymujęArgumentException:

Wpisz „PositionReportApi.Controllers.PositionsController” nie ma domyślnego konstruktora

Ślad stosu:

at System.Linq.Expressions.Expression.New (Type type) w System.Web.Http.Internal.TypeActivator.Create [TBase] (Type instanceType) w System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create (żądanie HttpRequestMessage, HttpControllerDescriptor controllerDescriptor, Type controllerType)

Nie mogę zarejestrowaćISession.

Jak zarejestrować ISession utworzoną przez fabrykę?

questionAnswers(1)

yourAnswerToTheQuestion