WCF ed enum
JoeRuspante
JoeRuspante non è online. Ultima attività: 07/02/2010 12.31.05JoeRuspante
il 9 febbraio 2009 alle 22:10
156 messaggi dal 08 febbraio 2009
Salve a tutti.


Ho un metodo di un server WCF che riceve come parametro di tipo "out" una classe da me creata.

Funziona tutto perfettamente.
Se però alla mia classe aggiungo un metodo di tipo "enum", succede che il client e il server smettono di comunicare (in realtà il client esce con una Exception in cui dice che la connessione col server si è chiusa inaspettatamente).

Per il momento ho aggirato il problema convertendo la proprietà di tipo "enum" in una proprietà di testo, però volevo riuscire a capire come si possono usare le enumerazioni in WCF, se non altro per la prossima volta.

Grazie mille
Re: WCF ed enum
novecento
novecento non è online. Ultima attività: 06/02/2010 11.18.19novecento Top Poster
il 10 febbraio 2009 alle 15:48
"JoeRuspante" wrote in message
Salve a tutti.

Ho un metodo di un server WCF che riceve come parametro di tipo "out" una classe da me creata.

Funziona tutto perfettamente.
Se però alla mia classe aggiungo un metodo di tipo "enum", succede che il client e il server smettono di comunicare (in realtà il client esce con una
Exception in cui dice che la connessione col server si è chiusa inaspettatamente).

Per il momento ho aggirato il problema convertendo la proprietà di tipo "enum" in una proprietà di testo, però volevo riuscire a capire come si possono usare le enumerazioni in WCF, se non altro per la prossima volta.
Grazie mille

E' probabile che sia un problema di serializzazione, in tal caso potresti far ereditare il tuo enumeratore dalla classe byte; cmq dai un'occhiata a http://msdn.microsoft.com/en-us/library/aa347875.aspx.

Alessio Leoncini
SilverlightItalia.com
Re: WCF ed enum
Ricciolo
Ricciolo non è online. Ultima attività: 06/02/2010 11.33.28Ricciolo Top Poster
l'11 febbraio 2009 alle 12:12
Prima di tutto dovresti abilitare il tracing così vedi che errore è.
Comunque marca anche il tipo enumerato con DataContract. Es:

[DataContract]
public enum MioTipo
{
[EnumMember(Value = "0")]
Valore1,
[EnumMember(Value = "1")]
Valore2,
}


Ricorda che stai facendo un servizio. Definisci sempre le strutture dati. Inoltre l'enum nell'xsd non esiste, di fatto è solo una stringa vincolata nei valori possibili che può avere. Infine evita i parametri di out. Fai una bella classe di richiesta che include n proprietà e una di risposta che include n2 proprietà. E' un servizio che scambia messaggi XML, non una funzione C
Modificato da Ricciolo il 11 febbraio 2009 12.12 -

Ciao

Il mio blog
Homepage
Re: WCF ed enum
JoeRuspante
JoeRuspante non è online. Ultima attività: 07/02/2010 12.31.05JoeRuspante
l'11 febbraio 2009 alle 15:16
156 messaggi dal 08 febbraio 2009
Ciao e grazie!

Avevo pensato al fatto che gli enum avessero bisogno del [DataContract], però non gli avevo messo il valore EnumMember...

Ormai ho modificato tutto per usare le stringhe. Magari terrò conto della cosa nella prossima implementazione che dovrò fare.

Per quanto riguarda i parametri "out", ci sono delle controindicazioni particolari?

Avevo pensato a suo tempo di fare una classe apposita come suggerivi tu, però poi ho visto che i parametri "out" funzionavano bene, per cui ho sviluppato tutto con quelli e non vedo grossi problemi (l'unica particolarità è che gli 'out' vengono messi sempre prima, anche se nel vero metodo sono in fondo).

Grazie comunque.

 

Torna al forum |   Feed RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
COMMUNITY
ULTIMI MESSAGGI
UTENTI ONLINE
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2010.2.8