Nhibernate中的“DynamicMethod的类型所有者无效”错误

时间:2012-10-16 16:38:16

标签: nhibernate generics

如果在初始化NHibernate SessionFactory时收到“DynamicMethod的无效类型所有者”错误,该怎么办?

1 个答案:

答案 0 :(得分:1)

如果在初始化NHibernate SessionFactory时收到“DynamicMethod的无效类型所有者”错误,那么很可能您在某些延迟加载/代理类上使用泛型方法。

Nhibernate采用了反射优化,可以加速代理类的创建。这种反射优化与泛型不匹配。它抛出的错误是“DynamicMethod的无效类型所有者”。不太友好。

因此,要解决此问题,您必须停止使用通用方法或关闭优化。要关闭优化,必须在初始化SessionFactory之前运行以下代码。

NHibernate.Cfg.Environment.UseReflectionOptimizer = false;