none
Fazer biblioteca usar conexao propria RRS feed

  • Pergunta

  • Pessoal, seguinte... Tenho um windows service que instancia várias dlls de vários sistemas por reflexao. A ideia é manter o dinamismo, pra nao precisar recompilar tudo quando um método for alterado. Até ai tudo bem.

    O problema é que as dlls deveriam usar suas proprias conexoes, mas como elas usam a conexa do projeto chamador, elas usam a conexao do servico, e assim nao tem acesso as tabelas de seus respectivos sistemas. Alguem tem ideia de como burlar isso?

    Uma solução seria adicionar no xml de conexao do servico as conexoes de cada sistema que serão usados. O problema é ter que recompilar o servico a cada dll que for criada.

    Alguém???

    quarta-feira, 14 de março de 2012 13:44

Respostas

Todas as Respostas

  • Olá Fabio,

    Se vc estiver utilizando LINQ to SQL ou Entity Framework, vc pode passar a connection string por parâmetro para o construtor de seu contexto de dados.

    Não seria uma possibilidade fazer uso desse recurso? Ou então altere o nome da conection string do seu sistema chamador e faça a inclusão da connection string dos sistemas chamados no seu arquivo de configuração.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    quarta-feira, 14 de março de 2012 14:10
    Moderador
  • Olá Fernando,

    essa sua segunda alternativa foi sugerida pelo coordenador da arquitetura, o porém dessa solucao seria que perderiamos um pouco do dinamismo da solucao atual (o servico teria que ser recompilado a cada nova inclusao, e o processo para gerar arquivos criptografados para ambientes de homologacao e producao é bastante burocratico)...

    No caso de LINQ, eu cairia no mesmo problema que estou tendo. Por padrao nosso, os arquivos de configuracao sao xmls, e as strings de conexao ficam dentro dele. Entao pra buscar a string, acabaria buscando do projeto chamador do mesmo jeito. Ou não?

    quarta-feira, 14 de março de 2012 15:08
  • Olá Fabio,

    Me lembrei de um recurso que vc pode utilizar...

    Geralmente, existe uma best pratice de que devemos contruir um Application Domain para nossas aplicações que fazem o carregamento de binários utilizando reflection, do mesmo modo como vc esta fazendo.

    E com o uso de um Application Domain vc pode atribuir um segundo arquivo de configuração para sua aplicação através da propriedade ConfigurationFile.

    Veja este link: http://msdn.microsoft.com/en-us/library/system.appdomainsetup.configurationfile.aspx

    Espero ter ajudado.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    quinta-feira, 15 de março de 2012 01:47
    Moderador