Pregunta

Estamos intentando crear un servicio web al que planeamos pasarle una cantidad variable de variables.

Se puede hacer esto?

Básicamente, en lugar de pasar todos los parámetros posibles, deseamos pasar solo los valores establecidos y usar los valores predeterminados establecidos en el servicio web.

Aquí hay un ejemplo del XML que buscamos enviar; enviaríamos una cantidad desconocida de funciones dependiendo de la devolución necesaria.

<?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>

¿Funcionará esto o deberíamos hacerlo de otra manera?

¿Fue útil?

Solución

Pasaría un documento xml en lugar de realizar funciones concretas para esto.

El servicio web de su ejemplo tiene fugas: el consumidor necesita saber demasiado sobre esta interfaz y la implementación interna del servicio web.

Documento XML y luego vincularlo con un XSD.De esa manera puede validar previamente la entrada al servicio web.

Échale un vistazo a estos

Desarrollador IBM Foro ASP.NET

También recomendaría usar esto para probar servicios web y es gratuito.WSStudio

Otros consejos

Simplemente puede pasar una matriz de longitud variable como parámetro.

Si no le gusta la idea de una matriz (esto no es la respuesta de Konrad; puede tener diferentes tipos de parámetros), puede pasar objetos complejos (es decir,objetos que tú mismo hiciste)..La desventaja es que luego no puedes probar usando la página ASMX, sino que tendrías que hacerlo todo en código (lo cual no es realmente malo, especialmente si estás acostumbrado).

Estoy de acuerdo con el pequeño friki.No hacer que su servicio web sea un método difícil.Conviértalo en un punto final de recepción para recibir mensajes.En particular, un mensaje de comando.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top