.net 温莎城堡3号&x2B;流利的NHibernate+;卡索·恩希伯内特·综合酒店

.net 温莎城堡3号&x2B;流利的NHibernate+;卡索·恩希伯内特·综合酒店,.net,nhibernate,castle-windsor,integration,castle,.net,Nhibernate,Castle Windsor,Integration,Castle,我创建了一个示例项目,以复制我与Castle Windsor和NHibernate集成设施之间的问题 我得到以下例外情况: Method not found: 'Void Castle.Core.DependencyModel..ctor(Castle.Core.DependencyType, System.String, System.Type, Boolean)'. 使用以下堆栈跟踪: at Castle.Facilities.NHibernateIntegration.Internal.

我创建了一个示例项目,以复制我与Castle Windsor和NHibernate集成设施之间的问题

我得到以下例外情况:

Method not found: 'Void Castle.Core.DependencyModel..ctor(Castle.Core.DependencyType, System.String, System.Type, Boolean)'.
使用以下堆栈跟踪:

at Castle.Facilities.NHibernateIntegration.Internal.NHSessionComponentInspector.ProcessModel(IKernel kernel, ComponentModel model)
at Castle.MicroKernel.ModelBuilder.DefaultComponentModelBuilder.<>c__DisplayClass6.<BuildModel>b__4(IContributeComponentModelConstruction c)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Castle.MicroKernel.ModelBuilder.DefaultComponentModelBuilder.BuildModel(IComponentModelDescriptor[] customContributors)
at Castle.MicroKernel.Registration.ComponentRegistration`1.Castle.MicroKernel.Registration.IRegistration.Register(IKernelInternal kernel)
at Castle.MicroKernel.DefaultKernel.Register(IRegistration[] registrations)
at Castle.Facilities.NHibernateIntegration.NHibernateFacility.RegisterDefaultConfigurationBuilder()
at Castle.Facilities.NHibernateIntegration.NHibernateFacility.RegisterComponents()
at Castle.Facilities.NHibernateIntegration.NHibernateFacility.Init()
at Castle.MicroKernel.Facilities.AbstractFacility.Castle.MicroKernel.IFacility.Init(IKernel kernel, IConfiguration facilityConfig)
at Castle.MicroKernel.DefaultKernel.AddFacility(IFacility facility)
at Castle.Windsor.WindsorContainer.AddFacility(IFacility facility)
at Castle.Windsor.Installer.DefaultComponentInstaller.SetUpFacilities(IConfiguration[] configurations, IWindsorContainer container, IConversionManager converter)
at Castle.Windsor.Installer.DefaultComponentInstaller.SetUp(IWindsorContainer container, IConfigurationStore store)
at Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] installers, DefaultComponentInstaller scope)
at Castle.Windsor.WindsorContainer.Install(IWindsorInstaller[] installers)
at CW3_FluentNH_Integration_Tester.Main.Main() in D:\Documents and Settings\cannizrm\Desktop\Windsor3FluentTester\CW3_FluentNH_Integration_Tester\CW3_FluentNH_Integration_Tester\Main.vb:line 28
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
这是我用来加载容器和安装Fluent NH配置的示例代码:

Imports Castle.Windsor

Module Main

#Region " Declarations "

  Private objContainer As IWindsorContainer

#End Region

#Region " Properties "

  Public ReadOnly Property Container As IWindsorContainer
    Get
      If objContainer Is Nothing Then
        objContainer = New WindsorContainer()
      End If
      Return objContainer
    End Get
  End Property

#End Region

#Region " Functions "

  Sub Main()

    Container.Install(Castle.Windsor.Installer.Configuration.FromXmlFile ("Configs\hibernate.cfg.xml"))

  End Sub

#End Region

End Module
这是使用的示例XML配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <facilities>
    <facility id="nhibernate" isWeb="false" type="Castle.Facilities.NHibernateIntegration.NHibernateFacility, Castle.Facilities.NHibernateIntegration">
      <factory id="nhibernate.factory">
        <settings>
          <item key="show_sql">true</item>
          <item key="connection.provider">NHibernate.Connection.DriverConnectionProvider</item>
          <item key="connection.driver_class">NHibernate.Driver.SqlClientDriver</item>
          <item key="dialect">NHibernate.Dialect.MsSql2005Dialect</item>
          <item key="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True</item>
        </settings>
      </factory>
    </facility>
  </facilities>
</configuration>

真的
NHibernate.Connection.DriverConnectionProvider
NHibernate.Driver.SqlClientDriver
NHibernate.dialogue.mssql2005dialogue
数据源=。\SQLEXPRESS;初始目录=北风;集成安全性=真

我已在项目跟踪程序中将此问题注册为一个问题,并包含了两个补丁文件来解决此问题


我已在项目跟踪程序中将此问题注册为一个问题,并包含了两个补丁文件来解决此问题


此后,我已将可能的解决方案发布到温莎城堡开发邮件列表中。当帐户限制不到位时,我会将此添加到有效答案中。是的,这显然是一个NHibernateIntegration未针对Windsor 3进行更新的情况。是的,这是正确的。我在开发人员邮件列表上的帖子链接如下:。我只是想看看是否值得为它创建一个补丁。是的,总是发送一个补丁。永远不要等待确认。要“积极主动”(我知道这是个愚蠢的词,但在这里确实适用)。最坏的情况是,它会被拒绝,但可能不会。我已经在温莎城堡开发邮件列表上发布了一个可能的解决方案。当帐户限制不到位时,我会将此添加到有效答案中。是的,这显然是一个NHibernateIntegration未针对Windsor 3进行更新的情况。是的,这是正确的。我在开发人员邮件列表上的帖子链接如下:。我只是想看看是否值得为它创建一个补丁。是的,总是发送一个补丁。永远不要等待确认。要“积极主动”(我知道这是个愚蠢的词,但在这里确实适用)。最坏的情况是,它会被拒绝,但可能不会。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <facilities>
    <facility id="nhibernate" isWeb="false" type="Castle.Facilities.NHibernateIntegration.NHibernateFacility, Castle.Facilities.NHibernateIntegration">
      <factory id="nhibernate.factory">
        <settings>
          <item key="show_sql">true</item>
          <item key="connection.provider">NHibernate.Connection.DriverConnectionProvider</item>
          <item key="connection.driver_class">NHibernate.Driver.SqlClientDriver</item>
          <item key="dialect">NHibernate.Dialect.MsSql2005Dialect</item>
          <item key="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True</item>
        </settings>
      </factory>
    </facility>
  </facilities>
</configuration>