我现在看一下Griffin.Decoupled和Griffin.Container库。在我的ASP.MVC4应用程序中,我想在第一步中使用IocQueryDispatcher。
我的问题是向registrar.RegisterType<IQueryDispatcher, IocQueryDispatcher>注册,因为IocQueryDispatcher有一个IServiceLocator依赖项。
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 /容器本身?(容器应注册为单例)
在分析了这些库之后,我找不到这样做的方法。
发布于 2012-11-15 17:53:45
您必须在Griffin.Decoupled和Griffin.Container之间安装适配器:
install-package griffin.decoupled.container然后,只需将注册行替换为:
registrar.DispatchQueries();示例可在此处找到:https://github.com/jgauffin/Samples/tree/master/Griffin.Decoupled
https://stackoverflow.com/questions/13393279
复制相似问题