none
Erro ao tentar migrar NHibernate da versão 2.1.2.4 para a 3.4.0 RRS feed

  • Pergunta

  • Bom dia.

    Estou tentando efetuar a migração citada. Tentei fazer a migração utilizando o Nuget e ocorreram os erros abaixo na classe responsável pela inversão de controle:

    1

    The type 'Castle.Facilities.FactorySupport.FactorySupportFacility' cannot be used as type parameter 'TFacility' in the generic type or method 'Castle.Windsor.IWindsorContainer.AddFacility<TFacility>()'. There is no implicit reference conversion from 'Castle.Facilities.FactorySupport.FactorySupportFacility' to 'Castle.MicroKernel.IFacility'.

    2

    The best overloaded method match for 'Castle.Windsor.IWindsorContainer.Register(params Castle.MicroKernel.Registration.IRegistration[])' has some invalid arguments

    3

    Argument 1: cannot convert from 'Castle.MicroKernel.Registration.ComponentRegistration<object>' to 'Castle.MicroKernel.Registration.IRegistration[]'

    segue o código da classe IOC:

    using System;
    using System.Reflection;
    using Castle.Core;
    using Castle.Core.Interceptor;
    using Castle.Facilities.FactorySupport;
    using Castle.MicroKernel.Registration;
    using Castle.Windsor;
    using NHibernate;          

    publicclassIOC// ReSharper restore InconsistentNaming     {         privatestaticIWindsorContainer _container;         public IOC(IWindsorContainer container)         {             _container = container;         }         publicvoid AddComponentsTo()         {             _container.AddFacility<FactorySupportFacility>();             AddApplicationPresentersTo();             AddApplicationExtServicesTo();             AddCustomRepositoriesTo();             AddApplicationServicesTo();             AddSchedulerManager();             _container.Register(                 Component.For<IInterceptor>().ImplementedBy<TransactionInterceptor>().Named("TransactionInterceptor"));         }

    }

    Jà pesquisei em vários fóruns e não encontrei solução.

    Alguém já passou por algo parecido?

    segunda-feira, 10 de agosto de 2015 13:19

Respostas

Todas as Respostas

  • Bom dia Marclameu,

    Você já verificou aqui se alguém mais passou pelo mesmo problema?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.



    • Editado Marcos SJ terça-feira, 11 de agosto de 2015 13:43
    terça-feira, 11 de agosto de 2015 13:38
  • Seu problema nao é o NHibernate e sim o Castle. Na versao 2 do N, o castle era um componente obrigatorio e na versao 3 ele deixou de ser utilizado. Essa parte do seu codigo tem que ser reescrita, aqui um exemplo:

    https://erikbase.wordpress.com/2010/03/22/managing-nhibernate-sessions-with-ioc/

    Agora voce pode usar outros bibliotecas IOC. Eu sugiro voce migrar para o Ninject. Por enquanto é o mais simples e estavel.

    http://michaelhubele.com/post/2013/07/18/setting-nhibernate-work-ninject


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Marcado como Resposta Marcos SJ quinta-feira, 13 de agosto de 2015 18:49
    terça-feira, 11 de agosto de 2015 14:11
    Moderador