我有確切相同的情況下如果我實現這個使用StructureMap 2.6.2爲Named singleton instance in StructureMap (Multiple nHibernate session factories)命名的單一實例中StructureMap多NHibernate的會議工廠(StructureMap 2.5.4)
描述 - 太棒了!
但是,由於遺留項目中涉及的各種因素無法使用最新的.NET框架版本以及其他一些原因,我必須使用StructureMap 2.5.4。假設這個問題我不能爲可預見的未來升級。
2.5.4在語法上顯然與2.6.2完全不同,我無法弄清楚如何使用API來實現相同的功能。
特別是,它的這個東西
For<ISessionFactory>().LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.Singleton))
.Add(context => CreateSessionFactory(@"MyName")).Named("MySessionFactory");
For<ISession>().LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.Hybrid))
.Add(context => context.GetInstance<ISessionFactory>("MySessionFactory").OpenSession()).Named("MyName");
For<ISessionFactory>().LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.Singleton))
.Add(context => CreateSessionFactory(@"My2ndName")).Named("My2ndSessionFactory");
For<ISession>().LifecycleIs(Lifecycles.GetLifecycle(InstanceScope.Hybrid))
.Add(context => context.GetInstance<ISessionFactory>("MySessionFactory").OpenSession()).Named("My2ndName");
...有一個叫CreateSessionFactory(串)創建的相關配置方法。
「Add」和後續的「GetInstance」是無效的,需要重構才能使用2.5.4 - 我太愚蠢了,無法解決問題,或者確實可以實現同樣的目標。
乾杯
我應該補充說,通過使用「使用」和「WithName」 - 它不能正常工作 - 這是我想的第一件事。 – SpaceBison 2011-03-31 13:30:16