in

dotNet Umbria

Il primo User Group in Umbria sul mondo .Net

Paolo Possanzini

WCF CompactFramework with PowerToys: Serialization Tips

Oggi Andrea ha creato una applicazione WCF per CompactFramework, per collegare una applicazione per PPC ad un servizio WCF esposto su un webservice.
Tutto sembra funzionare correttamente, tranne che per l'invio di alcuni dati da parte del PPC al server.

Abbiamo scoperto che ogni volta che il palmare incontra un valore nullable, il valore non viene serializzato di default e quindi non viene riportato sul server.
La classe proxy del servizio generata per l'applicazione PPC,contiene infatti una proprietà aggiuntiva per ogni proprietà Nullable.
La proprietà (di tipo boleano) si chiama esattamente con lo stesso nome della proprietà base con in più il suffisso "Specified".

Ogni volta che intendo inviare al servizio un valore nullabile è necessario impostare il valore di tale proprietà a TRUE.
Altrimenti il client non serializzerà il valore corrispondente all'interno del messaggio e sul server otterrò sempre un valore nullo.

Dopo ogni assegnazione è quindi necessario inserire una if e se abbiamo effettivamente valorizzato la proprietà dobbiamo inserire un true sulla rispettiva proprietà Specified.

[code language="C#"]

if(myentity.myproperty != null)
    myentity.mypropertySpeficied=true;
else
    myentity.mypropertySpecified=false;

[/code]

Il problema probabilmente è un errore di serializzazione della classe proxy, infatti si potrebbe far inserire questa if all'interno del metodo set di ogni proprietà.

Only published comments... Nov 29 2007, 05:37 PM by Paolo Possanzini
Filed under: ,

About Paolo Possanzini

Programmatore di vecchia data, mi sono appassionato a dotnet fin dalla prima versione. Mi interesso di programmazione, accesso ai dati, Sql Server.
Con Andrea abbiamo fondato TeamDev snc.

Scarica il mio Biglietto da visita
dotNet Umbria 2007-2008
Powered by Community Server (Commercial Edition), by Telligent Systems