我正在尝试使用StructureMap、NHibernate 和多个数据库将一个类型的多个实例添加到结构映射中作为我的设计来源
这是我在注册表中添加它们的方法:
foreach (ConnectionStringSettings location in ConfigurationManager.ConnectionStrings)
{
For<INHibernateSessionFactory>()
.Add(x => new NHibernateSessionFactory(location.Name, GetSessionFactory(location.ConnectionString)));
}
然后在我的 AppSessionFactory 中:
public AppSessionFactory(IEnumerable<NHibernateSessionFactory> factories)
{
_factories = new List<INHibernateSessionFactory>(factories);
}
那个或这个都不起作用:
_factories = ObjectFactory.GetAllInstances<INHibernateSessionFactory>().ToList();
两个调用都返回两个相同的对象、相同的位置和相同的 SessionFactory。