我有确切相同的情况下如果我实现这个使用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