的具体情况我与数据库存储库接口(IDBSessionFactory
)的2代实例的ASP.NET MVC的项目:一个是数据的数据库和一个配置数据库。在我的引导程序,这是怎么了布线了DI:Autofac - 注射接口
// 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());
我有需要的IDBSessionFactory
的"configDB"
实例作为输入参数一些控制器类。我如何去实现这个目标?
任何帮助表示赞赏。
你确定吗?当我按照你的建议做时,Autofac会抛出一个异常,因为它不知道要注入哪个实例,因为我在上面的示例中已经注册了2个命名实例。 – 2013-02-22 19:05:54
@Shailen Sukul:假设你有一个名为'FooController'控制器,它'RegisterControllers'为您注册。然后您可以手动注册'FooController'并通过'ResolveNamed'引用“configDB”或“dataDB”组件。解析'FooController'时,Autofac将提供您的手边注册*而不是*自动注册*。那有意义吗? – 2013-02-22 21:52:14
我没有使用ResolveNamed随着ResolvedParameter得到它的工作..结合奏效了我..我 点是最后获胜的部分没有按预期工作。我必须每个控制器明确领带与特定实例的IDBSessionFactory类.. 感谢您的帮助 – 2013-03-06 09:47:02