none
Classes em WebService RRS feed

  • Pergunta

  • Olá pessoal, 

    To com uma dúvida que acho que deve ser simples de responder.

    Estou criando um webservice com várias classes e cada classe com seus vários metodos.

    Eu queria que quando for utilizar meu webservice eu só tivesse re referenciar sua URL uma unica vez e ter todos as classes e metodos tipo:

    dim p as MeuWebService.Produto

    p.retornaproduto()

    Dim c as MeuWebService.Cliente

    c.RetornaCliente()

    entendeu?? Eu queria numa unica instancia ter todos das minhas classes e dentro delas meus métodos, mas só to conseguindo fazer assim se criar vários arquivos .asmx e consequentemente cada um teria uma URL. ou Colocasse todos os meus métodos dentro do mesmo arquivo .asmx mas isoo é errado.

    Obrigado

    Alex


    "A casa caiu mas enchemos outra laje"

    sexta-feira, 22 de fevereiro de 2013 17:28

Todas as Respostas

  • Caro Alex...

    Desenvolvi uma aplicação Web Service e me deparei com o mesmo problema...para solucionar eu separei as classes do arquivo asmx....o asmx ficou somente para publicação das classes com seus métodos......o arquivo asmx está publicando todos os métodos ou até mesmo a classe inteira instanciada....

    Possuo classe de controle de Produto (cProduto.cs) ...Controle de Biometria (cBiometria.cs)...Controle de Vendas (cVendas.cs)....porem publico todas as classes e métodos via um único asmx chamado wsVenda....

    Na aplicação onde estou consumindo esse WS...eu somente instancio a classe wsVenda.....e utilizo todas as funções descritas acima...

    Não sei se é a melhor maneira....mas pra mim resolveu e ficou bem fácil manutenção.....pois fica tudo separado....da publicação com as classes com as regra de negócio..

    Espero ter ajudado...

    Obrigado...

    Gustavo Gouveia...

    • Sugerido como Resposta Gustavo.Gouveia terça-feira, 19 de março de 2013 18:12
    terça-feira, 19 de março de 2013 18:12
  • Oi Gustavo, 

    Você não teria um exemplo, já tentei aqui mas não consegui. Como você fez para no asmx ficar somente a publicação das classes??

    Obrigado

    "A casa caiu mas enchemos outra laje"

    terça-feira, 25 de junho de 2013 20:12
  • Amigo Alex,

    Basta você instanciar as classes no asmx.

    tipo assim:

     [WebMethod]
            [return: XmlElement(typeof(ENTIDADE.Preco))]
            public List<ENTIDADE.Preco> Listar()
            {
                DOMINIO.Preco instancia = new DOMINIO.Preco();
                List<ENTIDADE.Preco> lista = instancia.RetornarListaDB();
                instancia.Dispose();
                return lista;
            }
    
            [WebMethod]
            [return: XmlElement(typeof(ENTIDADE.Cliente))]
            public List<ENTIDADE.Cliente> listarCliente()
            {
                DOMINIO.Cliente cliente = new DOMINIO.Cliente();
                List<ENTIDADE.Cliente> lista = cliente.RetornarLista();
                cliente.Dispose();
                return lista;
            }

    • Sugerido como Resposta Julio ArrudaMVP segunda-feira, 1 de julho de 2013 18:54
    segunda-feira, 1 de julho de 2013 18:54