ciao, ho fatto un piccolo web service che contiene un webmethod che fà una query su una base dati e che ritorna un dataset.
Il web service funziona perfettamente se lo lancio da browser.. ritornandomi i nodi xml con il risultato della query.
Adesso voglio richiamare questo webservice su una applicazione (ho provato winform, webform e device application con lo stesso risultato) ed ho dato anche una sbirciatina su internet per vedere se e dove sbagliavo.. ma mi sono accorto che non stò sbagliando.. o che cmq anche su tanti altri esempi la procedura è praticamente uguale alla mia..
Ecco il webmethod:
codice:
public DataSet ReturnData() {
       
        OleDbConnection cn = new OleDbConnection("Stringa di connessione");
        OleDbDataAdapter adp = new OleDbDataAdapter("query",cn);
        DataSet ds = new DataSet();
        adp.Fill(ds,"all");
        return ds; 
    }
creo una applicazione windows form con vs 2005 e aggiungo una webreference all'indirizzo del webservice.

codice:
using namespace_applicazione.nome_webservice;
...
private void pulsante_Click(object sender, EventArgs e)
        {
           nome_webservice.classe_webservice AAAA = new classe_webservice();
           DataSet ds =  AAAA.ReturnData();
         }
sulla riga:
codice:
DataSet ds =  AAAA.ReturnData();
mi viene ritornato un errore di conversione di tipi:
Cannot implicitly convert type 'namespace_applicazione.nome_webservice.ReturnData ResponseReturnDataResult' to 'System.Data.DataSet'
questo: "ReturnDataResponseReturnDataResult"
mi ha incuriosito e sono andato a vedere cos'era nel file 'Reference.cs' creato automaticamente da visual studio al momento dell'aggiunta della web reference..
a parte il fatto che la parola "ReturnData" è il nome del metodo che ritorna il dataset.. non riesco proprio a capire di cosa si tratti..
ecco cosa vedo nel file 'Reference.cs' (ovviamente non c'è solo questo metodo)
codice:
public ReturnDataResponseReturnDataResult ReturnData() {
            object[] results = this.Invoke("ReturnData", new object[0]);
            return ((ReturnDataResponseReturnDataResult)(results[0]));
        }
che cavolo è questo tipo ReturnDataResponseReturnDataResult?

Grazie