[英]StructureMap Add Multiple Instances Not working
我正在嘗試使用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。
我不完全確定,但這可能與您訪問修改后的閉包的方式有關。
我會嘗試創建一個本地范圍的變量副本,如下所示:
foreach (ConnectionStringSettings location in ConfigurationManager.ConnectionStrings)
{
ConnectionStringSettings localLocation = location;
For<INHibernateSessionFactory>()
.Add(x => new NHibernateSessionFactory(localLocation.Name, GetSessionFactory(localLocation.ConnectionString)));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.