我正在尝试使用structuremap为我的一些intregration测试构建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);
}
我已经尝试配置我的ObjectFactory
为第一个构造函数提供参数,但似乎它想尝试第二个构造函数。
如何配置我的ObjectFactory
以便我可以选择第一个构造函数,或者如果我决定使用它,可能会选择另一个构造函数?
答案 0 :(得分:3)
在您的注册表中,您可以这样做:
SelectConstructor<SessionSource>(()=> new SessionSource((FluentConfiguration)null));
For<SessionSource>().Use<SessionSource>();