我很想尝试运行一个简单的NHibernate应用程序。我正在一步一步地“开始使用NHibernate”。 首先,我得到了一个无效的属性错误(设法修复它)。
现在,我得到一个例外:
无法加载类型'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle' 在配置代理工厂类时。
可能的原因是: - 未部署NHibernate.Bytecode提供程序程序集。 - 用于初始化session-factory部分的'proxyfactory.factory_class'属性的typeName格式不正确。
解决方案: 确认您的部署文件夹包含以下程序集之一: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll“
提到的文件位于QuickStart.dll所在的Bin文件夹中。 我不知道为什么会这样! 我今天花了几个小时试图让这个工作起来。 SO(Unable to load type ‘NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu’)的问题没有帮助:(
来自Web.config的hibernate配置:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">Server=(local);initial catalog=quickstart;Integrated Security=SSPI</property>
<property name="connection.isolation">ReadCommitted</property>
<property name="default_schema">Monitor.dbo</property>
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<!-- HBM Mapping Files -->
<mapping assembly="QuickStart"/>
</session-factory>
</hibernate-configuration>
答案 0 :(得分:1)
由于您的配置文件将NHiberante配置为使用Castle动态代理,因此您需要在bin文件夹中使用NHibernate.ByteCode.Castle.dll,确保在应用程序中引用此dll并将其复制到项目输出路径。
如果您的问题仍然存在,请启用融合日志并检查NHibernate在哪里查找dll。