Fluent nhibernate 当对StructureMap使用依赖项注入时,如何在多个构造函数中进行选择?

Fluent nhibernate 当对StructureMap使用依赖项注入时,如何在多个构造函数中进行选择?,fluent-nhibernate,dependency-injection,structuremap,ioc-container,Fluent Nhibernate,Dependency Injection,Structuremap,Ioc Container,我正试图让structuremap为我的一些集成测试构建Fluent Nhibernate的SessionSource对象。唯一的问题是Fluent对ISessionSource(SessionSource)的具体实现有3个构造函数: public SessionSource(PersistenceModel model) { Initialize(new Configuration().Configure(), model); } publi

我正试图让structuremap为我的一些集成测试构建Fluent Nhibernate的
SessionSource
对象。唯一的问题是Fluent对
ISessionSource
SessionSource
)的具体实现有3个构造函数:

    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);
    }
publicsessionsource(PersistenceModel)
{
初始化(新配置().Configure(),模型);
}
公共会话源(IDictionary属性、PersistenceModel模型)
{
初始化(新配置().AddProperties(属性),模型);
}
公共会话源(FluentConfiguration配置)
{
configuration=config.configuration;
sessionFactory=config.BuildSessionFactory();
方言=方言.getdia方言(配置.Properties);
}
我已尝试配置我的
ObjectFactory
为第一个构造函数提供参数,但它似乎想尝试第二个构造函数


如何配置我的
ObjectFactory
,以便我可以选择第一个构造函数,或者如果我决定使用它,甚至可以选择另一个构造函数?

在您的注册表中,您可以这样做:

SelectConstructor<SessionSource>(()=> new SessionSource((FluentConfiguration)null));
For<SessionSource>().Use<SessionSource>();
SelectConstructor(()=>newsessionsource((FluentConfiguration)null));
For().Use();