Come passare un oggetto complesso ad un metodo di un WS?

lunedì 15 febbraio 2010 - 17.35

Carlik Profilo | Junior Member

Salve , avrei bisogno di passare un oggetto di tipo non primitivo ad un metodo di un Web service e non riesco a capire che strada prendere. Qualcuno ha mai avuto questo problema?

ciccio_ska Profilo | Newbie

Dovresti serializzare l'oggetto...

prova a vedere qui:
http://www.visual-basic.it/articoli/ebDataTableSerializzabile.htm

ciaoo

Francesco Scalise
blog: http://www.flash-hacks.com

freeteo Profilo | Guru

Ciao,
cosa intendi per tipo non primitivo? che non è un tipo primitivo di .net, ma è un oggetto tuo?
I webservice sono ottimi per passare oggetti, in quanto si arrangia .net a serializzarti tutto quello che ti serve, ti basta fare una classe e metterla nel metodo, ad esempio:
public class MioTipo { public int ID {get; set;} public string Nome {get; set;} public string Cognome {get; set;} public DateTime DataNascita {get; set;} ...etc... } ... [WebMethod] public void GetOggetto(MioTipo parametro) { ....etc.... }
chiaramente vale sia come parametro che come ritorno di un metodo...si arrangia .net a farti tutta la serializzazione...
Lavorando ad oggetti fai quello che vuoi senza passare per serializzazioni fatte a mano, o datatable etc...tu lavori ad oggetti e sei tranquillo (quasi sempre...)

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Carlik Profilo | Junior Member

>Ciao,
>cosa intendi per tipo non primitivo? che non è un tipo primitivo
>di .net, ma è un oggetto tuo?
>I webservice sono ottimi per passare oggetti, in quanto si arrangia
>.net a serializzarti tutto quello che ti serve, ti basta fare
>una classe e metterla nel metodo, ad esempio:
>
>public class MioTipo
>{
> public int ID {get; set;}
> public string Nome {get; set;}
> public string Cognome {get; set;}
> public DateTime DataNascita {get; set;}
> ...etc...
>}
>
>...
>[WebMethod]
>public void GetOggetto(MioTipo parametro)
>{
> ....etc....
>}
>
>chiaramente vale sia come parametro che come ritorno di un metodo...si
>arrangia .net a farti tutta la serializzazione...
>Lavorando ad oggetti fai quello che vuoi senza passare per serializzazioni
>fatte a mano, o datatable etc...tu lavori ad oggetti e sei tranquillo
>(quasi sempre...)
>

Avrò forse qualche problema di configurazione , ma da me non funziona così : quando referenzio un WS in un progetto client ed istanzio un oggetto di tipo "RiferimentoServizio.MioTipo", tale oggetto non espone le proprietà "Id" , "Nome"(probabilmente perchè nel mio progetto Id e Nome sono a loro volta oggetti non di tipo string o int , ma di tipo TipoBase , una mia classe). Se invece utilizzo il linq per fare la stessa operazione di passaggio parametri il tutto fila...

freeteo Profilo | Guru

Ciao,
riesci ad allegare i progetti in "versione esempio" che vediamo di capire dov'è il problema?
Perchè l'ho usato in centinaia di progetti e non capisco come mai non funzioni da te...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Carlik Profilo | Junior Member

Allego un progetto d'esempio
Nella Web application il mio problema
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5