2

필자는 intregration 테스트를 위해 Fluent Nhibernate의 SessionSource 객체를 만들기 위해 구조체 맵을 얻으려고합니다. 유일한 문제는 ISessionSource (SessionSource)의 유창함의 구체적인 구현은 3 개 생성자를 가지고 있다는 것입니다 :StructureMap에서 Dependency Injection을 사용하는 경우 어떻게 여러 생성자를 선택해야합니까?

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>();