2012-11-15 35 views
0

我现在看看Griffin.DecoupledGriffin.Container库。 在我的ASP.MVC4应用程序中,我想在第一步中使用IocQueryDispatcherGriffin.Container/Griffin.Decoupled:容器本身的注册

我的问题是 registrar.RegisterType<IQueryDispatcher, IocQueryDispatcher> 因为IocQueryDispatcherIServiceLocator依赖登记。

在ASP.MVC应用当前的注册看起来像

protected static void Register(ContainerRegistrar registrar) 
{ 
    registrar.RegisterType<IQueryDispatcher, IocQueryDispatcher>(); 
    // this dont works because the _container is null 
    registrar.RegisterInstance<IServiceLocator>(_container); 
} 

public static void Configure() 
{ 
    var registrar = new ContainerRegistrar(); 
    registrar.RegisterApiControllers(Assembly.GetExecutingAssembly()); 
    registrar.RegisterControllers(Assembly.GetExecutingAssembly()); 

    var builder = new ContainerBuilder(); 
    Register(registrar); 
    // this method creates a new container 
    _container = registrar.Build(); 

    GlobalConfiguration.Configuration.DependencyResolver = new GriffinWebApiDependencyResolver(_container); 
    DependencyResolver.SetResolver(new GriffinDependencyResolver(_container)); 
} 

应如何IServiceLocator /容器本身可以注册? (该容器应该注册为singleton)

分析完库后我找不到这样做的方法。

回答