我想覆盖其中一个存储库的默认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
没有这种重载。是否有不同的配置选项可以实现相同的目标?
答案 0 :(得分:1)
您需要使用Child<>
代替CtorDependency<>
var container = new Container(x =>
{
x.For(typeof(IRepository<Facility>))
.Use(typeof(Repository<Facility>))
.Child<ISessionFactory>()
.IsNamedInstance("CoolSessionFactory");
});