无法加载代理工厂出厂异常

Dan*_*iel 1 nhibernate

运行我的Nhibernate项目时遇到这个恼人的错误.它正在运行okey,突然间它只是开始在这条路径中询问一个文件"d:\ CSharp\NH\NH \nhibernate\src\NHibernate\Bytecode\AbstractBytecodeProvider.cs",当取消时,它会抛出异常说它说无法在配置代理工厂类时加载类型'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle'.可能的原因是: - 未部署NHibernate.Bytecode提供程序程序集. - 用于初始化session-factory部分的"proxyfactory.factory_class"属性的typeName格式不正确.

解决方案:确认您的部署文件夹包含以下程序集之一:NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll

这对我来说很沮丧...请帮助请 - :)

Dmi*_*try 6

确保将以下dll复制到输出文件夹并由进程加载:

  • NHibernate.ByteCode.Castle.dll
  • Castle.Core.dll
  • NHibernate.dll
  • Iesi.Collections.dll
  • log4net.dll

你的NHibernate配置有这一行:

<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
Run Code Online (Sandbox Code Playgroud)

作为选项,您可以尝试升级到最新版本的NHibernate - 3.2.他们有一个内置的代理生成器,所以它应该更简单.你不需要这些额外的dll.如果您使用NHibernate 3.2,只需删除上面的配置行.

如果由于某些原因您无法升级到3.2,则可以考虑使用不同的字节代码提供程序.NHibernate支持其中3个开箱即用.试试LinFu或Spring:

  • NHibernate.ByteCode.Castle.ProxyFactoryFactory
  • NHibernate.ByteCode.LinFu.ProxyFactoryFactory
  • NHibernate.ByteCode.Spring.ProxyFactoryFactor