0

私は現在Griffin.DecoupledGriffin.Containerライブラリを調べています。私の ASP.MVC4 アプリケーションIocQueryDispatcherでは、最初のステップで を使用したいと考えています。

私の問題は 、依存関係がある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 / コンテナー自体はどのように登録できますか? (コンテナーはシングルトンとして登録する必要があります)

ライブラリを分析した後、それを行う方法が見つかりません。

4

1 に答える 1

1

Griffin.Decoupled と Griffin.Container の間にアダプターをインストールする必要があります。

install-package griffin.decoupled.container

次に、登録行を次のように置き換えます。

registrar.DispatchQueries();

サンプルはこちらにあります: https://github.com/jgauffin/Samples/tree/master/Griffin.Decoupled

于 2012-11-15T09:53:44.687 に答える