我想覆盖我的存储库之一的默认SessionFactory实例。我使用以下代码实现了此目的,但是我不喜欢指定要覆盖的构造函数参数的名称。
var container = new Container(x =>
{
x.For(typeof(IRepository<Facility>))
.Use(typeof(Repository<Facility>))
.CtorDependency<ISessionFactory("sessionFactory")
.IsNamedInstance("CoolSessionFactory");
});
SM文档建议,只要ctor不接受多个相同类型的参数,则
CtorDependency
方法不需要您提供参数名称。但是,使用最新版本的SM,我看不到CtorDependency
的这种过载。是否有可以实现相同目的的其他配置选项? 最佳答案
您需要使用Child<>
而不是CtorDependency<>
var container = new Container(x =>
{
x.For(typeof(IRepository<Facility>))
.Use(typeof(Repository<Facility>))
.Child<ISessionFactory>()
.IsNamedInstance("CoolSessionFactory");
});