NHibernate 2.1.2 - 如何禁用反射优化器
Posted
技术标签:
【中文标题】NHibernate 2.1.2 - 如何禁用反射优化器【英文标题】:NHibernate 2.1.2 - how to disable reflection optimizer 【发布时间】:2010-09-19 21:42:00 【问题描述】:我想禁用反射优化(测试目的),但我不知道在哪里做。 NH 2.1.2 在 XML 中使用 hibernate-configuration,文档明确指出不能在此处设置此设置。 :/ 我尝试用旧的 App.config 方式使用键/值对,但运气不好......
另外,NH 2+ 版本是否对反射优化有所改变?
【问题讨论】:
看来您可以通过将 Environment.UseReflectionOptimizer 设置为 false 来禁用它,但它似乎并没有改变任何东西。此外,我尝试直接在配置对象的属性集合中更改此设置,就在 Configure() 方法之前。虽然效果一样... 顺便说一句,我这样做是为了检查此设置的效果,因为此优化的启动成本很高。我知道我可以序列化配置、拆分映射等以减少启动时间。 【参考方案1】:你试过了吗
<add key="hibernate.use_reflection_optimizer" value="false" />
?
From the Hibernate Community:
我能够设置 hibernate.use_reflection_optimizer web.config 文件中的属性为 跟随。注意设置没有 内工作 休眠配置部分,所以我 必须把它放在一个新的休眠中 部分。代码现在似乎是 在中等信任环境中工作 (老爹)
<configSections>
<section name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"
requirePermission="false"/>
<section name="nhibernate"
type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.mysqlDialect</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">blahblah</property>
</session-factory>
</hibernate-configuration>
<nhibernate>
<add key="hibernate.use_reflection_optimizer" value="false" />
</nhibernate>
【讨论】:
是的,我做到了,但没有运气。 NH 似乎忽略了 App.config 中的以上是关于NHibernate 2.1.2 - 如何禁用反射优化器的主要内容,如果未能解决你的问题,请参考以下文章