2

我想覆盖我的一个存储库的默认 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. 是否有不同的配置选项可以实现相同的效果?

4

1 回答 1

1

您需要使用Child<>而不是CtorDependency<>

var container = new Container(x =>
{
    x.For(typeof(IRepository<Facility>))
        .Use(typeof(Repository<Facility>))
            .Child<ISessionFactory>()
                .IsNamedInstance("CoolSessionFactory");
});
于 2012-12-31T07:41:10.540 回答