Web Service da c#

di il
5 risposte

Web Service da c#

Ciao a tutti

Ho scritto un Web Service e riesco ad usarlo sul mio sito attraverso Javascript.
Ora sto scrivendo una applicazione C# e mi piacerebbe richiamare i servizi di questo WebService.
È una cosa complicata?, mi potete dare qualche dritta?

5 Risposte

  • Re: Web Service da c#

    Ciao ItaloPasi

    - In Visual Studio vai sul nome del progetto col mouse.
    - Tasto destro.
    - Add Service Reference.
    - Scrivi l' URL del WebService (ad esempio "http://www.MioSito/MioServizio.asm").
    - Imposta il namespace (ad esempio MioServizioReference) e poi premi go e ok.

    Ti verrà creato un po' di codice.

    Per richiamare un metodo del WebService:
    
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        MioServizioReference.MioServizioSoapClient service = 
              new MioServizioReference.MyServiceSoapClient();
    
        string s = service.MioMetodo();
        ...
    }
    
  • Re: Web Service da c#

    Perfetto, grazie!
    Però ho ancora un dubbio, la chiamata al WebService è lenta. Con Ajax la chiamata è asincrona, qui come funziona, devo usare un trhread?
  • Re: Web Service da c#

    Se vuoi puoi usare un thread, oppure puoi usare la chiamata asincrona. Ecco un esempio:
    
    private void Test()
    {
        MioServizioReference.MioServizioSoapClient service = 
           new MioServizioReference.MioServizioSoapClient();
    
        service.MioMetodoCompleted += 
           new EventHandler<MioServizioReference.MioMetodoCompletedEventArgs>(MioMetodoComplete);
    
        service.MioMetodoAsync();
    }
    
    private void MioMetodoComplete(object sender, MioServizioReference.MioMetodoCompletedEventArgs e)
    {
        if (e.Error == null)
            textBox1.Text = e.Result;
    }
    
    Come vedi il codice che è stato generato contiene un mucchio di wrapper attorno ai metodi del Web Service (MioMetodoCompleted, MioMetodoAsync, MioMetodoCompletedEventArgs), all' inizio si rimane un po spaesati, ma non è poi cosi complicato.
  • Re: Web Service da c#

    Scusa ma non riesco a trovare nel codice generato dei metodi con 'async' in fondo.
  • Re: Web Service da c#

    Quando hai fatto la procedura iniziale c' era qualcosa da spuntare per attivare le chiamate asincrone.
    Ora ti basta andare in Configure Service Reference (tasto destro sul ServiceReference) e spuntare Generate asynchronous operations.
Devi accedere o registrarti per scrivere nel forum
5 risposte