Domanda

Stiamo cercando di creare un servizio web a cui prevediamo di trasmettergli un numero variabile di variabili.

Può essere fatto?

Fondamentalmente invece di passare tutti i parametri possibili, desideriamo passare solo i valori impostati e utilizzare i valori predefiniti impostati nel servizio web.

Ecco un esempio dell'XML che stiamo cercando di inviare, invieremo una quantità sconosciuta di funzioni a seconda del rendimento necessario.

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

Funzionerà o dovremmo agire in modo diverso?

È stato utile?

Soluzione

Vorrei passare un documento XML invece di eseguire funzioni concreate per questo.

Il servizio web nel tuo esempio perde: il consumatore deve sapere troppo su questa interfaccia e sull'implementazione del servizio web internamente.

Documento XML e quindi collegarlo con un XSD.In questo modo puoi preconvalidare l'input nel servizio web.

Dai un'occhiata a questi

Sviluppatore IBM Forum ASP.NET

Consiglierei anche di usarlo per testare i servizi web ed è gratuitoWSStudio

Altri suggerimenti

Puoi semplicemente passare un array di lunghezza variabile come parametro.

Se non ti piace l'idea di un Array (questa non è la risposta di Konrad - potresti avere tipi di parametri diversi) puoi passare oggetti complessi (ad es.oggetti che hai realizzato tu stesso)..Lo svantaggio è che non puoi testare utilizzando la pagina ASMX, ma dovresti fare tutto nel codice (il che non è proprio una brutta cosa, soprattutto se ci sei abituato).

Sono d'accordo con littlegeek.Non rendere il tuo servizio web un metodo difficile.Rendilo un punto finale di ricezione da ricevere messaggi.In particolare, un messaggio di comando.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top