gpt4 book ai didi

nhibernate - StructureMap 中的命名单例实例(多个 nHibernate session 工厂)

转载 作者:行者123 更新时间:2023-12-04 18:24:11 24 4
gpt4 key购买 nike

我有一个场景,我有两个 Nhibernate SessionFactory,我需要向 StructureMap 注册一个使用。只有 Foo 需要 mySessionFactory session 。

像这样:

For<ISessionFactory>().Singleton().Use(NHibernateConfiguration.GetDefaultSessionFactory());
For<ISession>().HybridHttpOrThreadLocalScoped().Use(x => x.GetInstance<ISessionFactory>().OpenSession());
For<ISessionFactory>().Singleton().Use(AnotherNHibernateConfiguration.GetDefaultSessionFactory).Named("mySessionFactory");
For<ISession>().HybridHttpOrThreadLocalScoped().Use(x => x.GetInstance<ISessionFactory>("mySessionFactory").OpenSession()).Named("mySession");

For<Foo>()
.Use<Foo>()
.Ctor<ISession>("session").Is(x => x.TheInstanceNamed("mySession"));

问题是,当我只想在 Foo 中使用而其他任何地方都应该使用我的未命名实例时,现在到处都使用了 mySessionFactory。

我做错了什么?

最佳答案

在您的两个命名实例上,更改 UseAdd .使用将该实例设置为默认值并将其添加为实例。您也可以颠倒配置的顺序(使用 Use 添加的类型的最后一个实例将成为默认值),但使用 Add方法更加明确。

关于nhibernate - StructureMap 中的命名单例实例(多个 nHibernate session 工厂),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com