0

データベース リポジトリ インターフェイス ( ) の 2 つのインスタンスを持つ ASP.NET MVC プロジェクトがありますIDBSessionFactory。1 つはデータ データベース用、もう 1 つは構成データベース用です。私のBootstrapperでは、これがDIを配線する方法です:

// using ...

builder.Register(c => new DbSessionFactory("dataDB", Assembly.GetExecutingAssembly()))
    .Named<IDbSessionFactory>("datadb")
    .InstancePerHttpRequest()
    .InstancePerApiRequest();

builder.Register(c => new DbSessionFactory("configDB", Assembly.GetExecutingAssembly()))
    .Named<IDbSessionFactory>("configdb")
    .InstancePerHttpRequest()
    .InstancePerApiRequest();

builder.RegisterControllers(Assembly.GetExecutingAssembly());

入力パラメーターとしての"configDB"インスタンスを必要とするいくつかのコントローラー クラスがあります。IDBSessionFactoryそれを達成するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

2 に答える 2

0

Autofac では、登録は後回しです。これは、 を呼び出した後、RegisterControllersオーバーライドしたいコントローラーの 1 回限りの登録を行うだけで有効になることを意味します。

例:

builder.RegisterControllers(Assembly.GetExecutingAssembly());

builder.Register(c =>
    new FooController(c.ResolveNamed<IDbSessionFactory>("configDB")));

// ...

container.Resolve<FooController>()  // Resolves FooController with configDB
于 2013-02-21T22:55:35.630 に答える