如何从ISessionFactory获取NHibernate配置

如何从ISessionFactory获取NHibernate配置,nhibernate,configuration,fluent-nhibernate,Nhibernate,Configuration,Fluent Nhibernate,是否有任何方法可以从NHibernate中的ISessionFactory实例获取配置详细信息?如果您使用的是app.config或hibernate.xml.cfg我使用以下方法公开配置: NHibernate.Cfg.Configuration normalConfig = new NHibernate.Cfg.Configuration().Configure(); 当我配置会话工厂时,我传入了上述内容,我只是在静态会话工厂类中公开了此配置对象。ISessionFactory没有公开用于

是否有任何方法可以从NHibernate中的ISessionFactory实例获取配置详细信息?

如果您使用的是
app.config
hibernate.xml.cfg
我使用以下方法公开配置:

NHibernate.Cfg.Configuration normalConfig = new NHibernate.Cfg.Configuration().Configure();

当我配置会话工厂时,我传入了上述内容,我只是在静态会话工厂类中公开了此配置对象。

ISessionFactory没有公开用于创建会话工厂的配置,我也不确定具体实现是否也公开了该配置

但是,为什么不考虑注入配置呢?可能您没有使用依赖项注入,如果使用了,只需将其注册到内核中即可


另一方面,考虑使用一个包装类来保持配置和ISSeStudio。

< P>我已经编写了一个扩展类,它将会话工厂和配置映射到一个哈希表上。您可以在代码的任何位置轻松获得会话工厂的配置,但必须先为工厂设置配置

public static class SessionFactoryConfigurationBindingExtension
{
    private static readonly Dictionary<ISessionFactory, Configuration> _mappings = new Dictionary<ISessionFactory, Configuration>();
    private static readonly Object _mappingsLocker = new Object();

    public static Configuration GetConfiguration(this ISessionFactory sessionFactory)
    {
        lock (_mappingsLocker)
        {
            if (_mappings.ContainsKey(sessionFactory))
            {
                return _mappings[sessionFactory];
            }
            else
            {
                return null;
            }
        }
    }

    public static void SetConfiguration(this ISessionFactory sessionFactory, Configuration configuration)
    {
        lock (_mappingsLocker)
        {
            _mappings[sessionFactory] = configuration;
        }
    }
}
公共静态类SessionFactoryConfigurationBindingExtension
{
私有静态只读字典_映射=新字典();
私有静态只读对象_mappingsLocker=new Object();
公共静态配置GetConfiguration(此ISessionFactory sessionFactory)
{
锁(_mappingsLocker)
{
if(_mappings.ContainsKey(sessionFactory))
{
返回_映射[sessionFactory];
}
其他的
{
返回null;
}
}
}
公共静态void SetConfiguration(此ISessionFactory sessionFactory,配置)
{
锁(_mappingsLocker)
{
_映射[sessionFactory]=配置;
}
}
}

从会话中,我使用以下命令
Session.Connection.ConnectionString

我的班级是
UserIO:Base

用户是实体。

否我需要获取用于构建SessionFactory的配置的详细信息。以上是用于构建SessionFactory的配置的详细信息。您是否能够流利地配置所有设置?是,能够流利地配置。我正在将SessionFactory的实例注入到我的客户机类中,并希望根据我用来创建SessionFactory的配置来做一些事情。您在寻找什么配置信息?配置对象并没有存储在会话工厂对象中,但其中的很多信息都是…我想让配置对象在SchemaExport中使用它。