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

时间:2011-09-01 15:45:31

标签: 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

对我来说变得令人沮丧...请求帮助 - :)

2 个答案:

答案 0 :(得分:6)

确保您的进程已将以下dll复制到输出文件夹和loaded

  • 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>

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

如果由于某些原因无法升级到3.2,您可以考虑使用不同的byte code providers。 NHibernate支持其中3个开箱即用。试试LinFu或Spring:

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

答案 1 :(得分:2)

升级到最新版本,您将不再需要外部代理。