2

我試圖讓結構圖爲我的一些整合測試構建Fluent Nhibernate的SessionSource對象。唯一的問題是,流利的中ISessionSourceSessionSource)具體落實有3個構造函數:在StructureMap中使用依賴注入時如何在多個構造函數中選擇?

public SessionSource(PersistenceModel model) 
    { 
     Initialize(new Configuration().Configure(), model); 
    } 

    public SessionSource(IDictionary<string, string> properties, PersistenceModel model) 
    { 
     Initialize(new Configuration().AddProperties(properties), model); 
    } 

    public SessionSource(FluentConfiguration config) 
    { 
     configuration = config.Configuration; 

     sessionFactory = config.BuildSessionFactory(); 
     dialect = Dialect.GetDialect(configuration.Properties); 
    } 

我試過配置我ObjectFactory提供了第一個構造函數的說法,但現在看來似乎想嘗試第二個。

如何配置我的ObjectFactory,以便我可以選擇第一個構造函數,或者甚至可以選擇另一個,如果我決定使用它?

回答

3

在你的註冊表,你可以做這樣的:

SelectConstructor<SessionSource>(()=> new SessionSource((FluentConfiguration)null)); 
For<SessionSource>().Use<SessionSource>(); 
相關問題