我为我的映射创建了内部类,并在各处放置了“default-lazy=false”。
一段时间后,我决定完全懒惰并删除了此设置。突然之间,几乎所有事情都无法执行。我得到的异常是“无法执行查询... System.TypeLoadException:访问被拒绝...”。
这当然是因为类被标记为内部,因此它们无法被 nhibernate.dll 访问。这就是为什么我还添加到 AssemblyInfo.cs 行:
[assembly: InternalsVisibleTo(InternalsVisible.ToDynamicProxyGenAssembly2)]
[assembly: InternalsVisibleTo(InternalsVisible.ToCastleCore)]
[assembly: InternalsVisibleTo("MyUnitTestsDLL")]
但这没有帮助。我究竟做错了什么?
也许尝试添加:
[assembly: InternalsVisibleTo("NHibernate")]
如果这不起作用,请查看 TypeLoadException 的堆栈跟踪并检查从哪个 DDL 引发异常 - 为其添加一个 InternalsVisibleTo 属性。
我的猜测是 NHibernate DDL 正在尝试做一些更聪明的事情,现在启用了延迟加载..也许它必须出于某种原因访问内部类(模糊但我不知道源代码) NHibernate)
EDIT:
尝试添加:
[assembly: InternalsVisibleTo("mscorlib")]
您必须指定您正在使用的程序集的公钥/版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)