2

我想重写我的某个存储库的默认SessionFactory实例。我用下面的代码来实现这一点,但我不喜欢必须指定我试图覆盖的构造函数参数的名称。StructureMap:如何按类型而不是名称指定Ctor参数

var container = new Container(x => 
{ 
    x.For(typeof(IRepository<Facility>)) 
     .Use(typeof(Repository<Facility>)) 
      .CtorDependency<ISessionFactory("sessionFactory") 
       .IsNamedInstance("CoolSessionFactory"); 
}); 

的SM文件表明,只要构造函数不采取相同类型的多个参数,然后CtorDependency方法不要求您提供的参数名称。但是,使用最新版本的SM,我看不到CtorDependency这样的过载。是否有不同的配置选项可以实现相同?

回答

1

您需要使用Child<>代替CtorDependency<>

var container = new Container(x => 
{ 
    x.For(typeof(IRepository<Facility>)) 
     .Use(typeof(Repository<Facility>)) 
      .Child<ISessionFactory>() 
       .IsNamedInstance("CoolSessionFactory"); 
}); 
相关问题