NHibernate 3 Alpha - proxyfactory.factory_class?

时间:2010-09-12 15:07:53

标签: c# nhibernate nhibernate-mapping

我正在玩NHibernate 3 alpha,但很难设置我的SessionFactory。

我有以下内容:

 var config = new Configuration().Configure();
 _sessionFactory = config.BuildSessionFactory();

但是,在提供的3 alpha下载dll中,没有提供代理工厂类。即NHibernate.ByteCode.Castle,NHibernate.ByteCode.LinFu,以及nHib 2.x提供的Spring版本不在这里提供。

所以在3 alpha包中,我查看了NHibernate.Example.Web并使用了它提供的NHibernate.ByteCode.LinFu;这个例子在它的config.hbm中使用它。

所以,我的hibernate.cfg.xml有

<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>

在创建Factory

时,第二行因上述代码失败而失败
  

NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException未被用户代码处理     Message =无法在配置代理工厂类期间加载类型'NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu'。   可能的原因是:    - 未部署NHibernate.Bytecode提供程序程序集。    - 用于初始化&gt; session-factory部分的'proxyfactory.factory_class'属性的typeName格式不正确

但是,LinFu引用设置为CopyLocal,并深入研究堆栈跟踪,这给出了:

  

at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&amp; rpc)   
        在System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)     InnerException:System.IO.FileLoadException   
         Message =无法加载文件或程序集'NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)         来源= mscorlib程序         FileName = NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null         FusionLog ====预绑定状态信息===

     

LOG:DisplayName = NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null    (完全指定的)   
  日志:Appbase = file:/// C:/Dev/SilverTracker/src/SilverTracker/SilverTracker.Web.Services/   
  日志:初始PrivatePath =&gt; C:\ Dev \ SilverTracker \ src \ SilverTracker \ SilverTracker.Web.Services \ bin   
  调用程序集:NHibernate.ByteCode.LinFu,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null。

内在的执行本身:

  

{“无法加载文件或程序集'NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常) :0x80131040)“:”NHibernate,Version = 3.0.0.1002,Culture = neutral,PublicKeyToken = null“}

因此,据我所知,它找到了该文件,但它与nHib 3程序集无法兼容。

所以,我有点亏!

配置是否已更改为3?我正在努力寻找任何其他例子来禁止3组件提供的那些。

这是一个.NET 4.0 WCF服务。我知道我可以使用2.x,但我尝试了新的linq提供商的好处。

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果我不是那么笨拙,我会发布有一个更新的版本(alpha 2),其中包含你所期望的一切。

从这里抓住: link text

一切都很好,我会把这个留在这里,因为其他人也有同样的问题。