Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 容器/Griffin.Decoupled:容器本身的注册_C# 4.0_Domain Driven Design - Fatal编程技术网

C# 4.0 容器/Griffin.Decoupled:容器本身的注册

C# 4.0 容器/Griffin.Decoupled:容器本身的注册,c#-4.0,domain-driven-design,C# 4.0,Domain Driven Design,我现在看一下Griffin.Decoupled和Griffin.Container库。 在我的ASP.MVC4应用程序中,我希望在第一步中使用IocQueryDispatcher 我的问题是注册 register.RegisterType 因为IocQueryDispatcher具有IServiceLocator依赖关系 ASP.MVC应用程序中的当前注册如下所示 protected static void Register(ContainerRegistrar registrar) {

我现在看一下
Griffin.Decoupled
Griffin.Container
库。 在我的ASP.MVC4应用程序中,我希望在第一步中使用
IocQueryDispatcher

我的问题是注册
register.RegisterType
因为
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));
}
受保护的静态无效寄存器(ContainerRegistrar注册器)
{
register.RegisterType();
//这不起作用,因为_容器为空
注册机构注册机构(容器);
}
公共静态void Configure()
{
var register=new containerregistar();
register.registerapicontroller(Assembly.getExecutionGassembly());
register.RegisterController(Assembly.getExecutionGassembly());
var builder=new ContainerBuilder();
注册主任;
//此方法创建一个新容器
_container=registrator.Build();
GlobalConfiguration.Configuration.DependencyResolver=新的GriffinWebApiDependencyResolver(_容器);
SetResolver(新的GriffinDependencyResolver(_容器));
}
iSeries Vicelocator/容器本身应该如何注册? (容器应注册为singleton)


在分析了这些库之后,我找不到这样做的方法。

您必须在Griffin.Decoupled和Griffin.Container之间安装适配器:

install-package griffin.decoupled.container
然后,只需将注册行替换为:

registrar.DispatchQueries();

样本可以在这里找到:

ah,错过了看样本。