Pergunta

Estamos tentando criar um web service que pretendemos passar uma variável quantidade de variáveis a ele.

Isso pode ser feito?

Basicamente, em vez de passar todos os parâmetros possíveis desejamos passar apenas o conjunto de valores e usar os padrões definidos na web-service.

Aqui está um exemplo do XML nós estamos olhando para mandar, seria enviada uma quantidade desconhecida de funções, consoante o necessário retorno.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <WebMethod xmlns="http://tempuri.org/">
      <domains>
        <function1>
        <title>Some Title</title>
        <type>25</type>
        </function1>
    <function2 />
    <function3>
        <param>13</param>
    </function3>
      </domains>
    </WebMethod>
  </soap:Body>
</soap:Envelope>

Será que isso funciona ou deve-se fazer de uma maneira diferente?

Foi útil?

Solução

Eu iria passar em um documento xml em vez de fazer concreate funções para isso.

O webservice no seu exemplo é falha - o consumidor precisa saber muito sobre esta interface e a implementação do webservice internamente.

Documento XML e, em seguida, gravata, que com um XSD.De que maneira você pode prevalidte a entrada para o webservice.

Dê uma olhada nesses

IBM Developer ASP.NET Fórum

Eu também recomendaria utilizar isto para o teste de webservices e a sua livre WSStudio

Outras dicas

Você pode simplesmente passar um comprimento variável de array como parâmetro.

Se você não gosta da idéia de uma Matriz (isso não é slating Konrad resposta - você pode ter diferentes param tipos) você pode passar objetos complexos (por exemplo,objetos que você fez a si mesmo)..A desvantagem é que você não pode, em seguida, teste usando o ASMX página, mas seria necessário para fazer tudo isso em código (o que não é realmente uma coisa ruim, principalmente se você está acostumado).

Concordo com littlegeek.Não faça de seu serviço da web é o método difícil.Torná-lo um receptor de ponto de extremidade para receber mensagens.Particularmente, uma Mensagem de Comando.

http://www.eaipatterns.com/CommandMessage.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top