我有相同接口的多个实现,它们都具有相同的构造函数参数(strConn)。是否可以使用1 container.Register调用注册所有实现?
这就是我所拥有的:
container.Register(
Classes.FromAssemblyContaining<IUserMenuDao>()
.BasedOn<IDataAccess>().WithService.FromInterface()
);
这些实现都具有相同的构造函数参数;创建失败。注册一个将是:
container.Register(Component.For<IUserMenuDao>()
.DependsOn(new {strConn = ConfigurationManager.ConnectionStrings["ABC123"].ConnectionString})
.ImplementedBy<UserMenuDaoSqlServerImpl>());
有没有办法按惯例注册类似于代码示例#1但是对所有实现使用DependsOn?
答案 0 :(得分:6)
是的确是
container.Register(
Classes.FromAssemblyContaining<IUserMenuDao>()
.BasedOn<IDataAccess>()
.WithService.FromInterface()
.Configure(c => c.DependsOn(new {strConn = ConfigurationManager.ConnectionStrings["ABC123"].ConnectionString}))
);