none
Escolhendo entre dois namespaces RRS feed

  • Pergunta

  • Olá galera, 

    Bom, no meu caso temos a NFe 2.0 e a NFe 3.0(que ainda não está em vigor) e então as classes delas são geradas a partir do XSD, como nessas duas versões existem VÁRIOS campos iguais e estou trabalhando especifícamente na desserialização do xml, existe alguma forma de fazer essa desserialização sem a necessidade de criar dois métodos? Ex.: Um método para desserializar classe da NFe 2.0 e atribuir aos campos da tela e um método fazendo a mesma coisa no caso da classe da NFe 3.0.

    Ou seja, um método que faça esse trabalho onde os campos são comuns, e então outros para os campos diferentes.

    Espero ter sido claro.

    sexta-feira, 31 de maio de 2013 12:59

Todas as Respostas

  • Leandro, está é uma questão complexa. Você tem bom conhecimento de Orientação a Objeto, Polimorfismo e Refatoração de Código ? 


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Facebook Olavo Neto
    Linkedin Olavo Neto
    Se for útil marque como resposta e faça um Developer feliz :)

    sexta-feira, 31 de maio de 2013 15:29
    Moderador
  • Para "campos" comuns, conforme você descreve, pode-se fazer um overload, já que possuem parâmetros diferentes ou tipos diferentes, como você informa. Você pode criar uma Interface e declarar um método nela e depois em seus namespaces você então implementa essa interface e os métodos nela contidos. Estou apenas sugerindo sem saber o que realmente está acontecendo, pelo que eu entendi.
    • Marcado como Resposta Leandro Guyss sexta-feira, 31 de maio de 2013 18:35
    • Não Marcado como Resposta Leandro Guyss sexta-feira, 31 de maio de 2013 18:35
    sexta-feira, 31 de maio de 2013 15:58
  • Um pouco...
    sexta-feira, 31 de maio de 2013 18:10
  • Eu implementei a interface, o que diminuiu para um método, mas ainda sim tenho que verificar qual classe estou usando e então repetir os campos -.-, fazer um overload dá no mesmo: um método para cada classe.

    Estou vendo que realmente vou ter que bastante trabalho na manutenção desse código.

    sexta-feira, 31 de maio de 2013 18:40