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"); 
}); 
相關問題