Sono in corso alcune difficoltà con i servizi RIA WCF simili al problema specificato in this thread.Servizi Ria Passaggio dell'oggetto complesso come parametro a un metodo di servizio del dominio query
Il metodo di servizio di dominio che sto creando (un metodo di Query) dovrebbe utilizzare un parametro oggetto complesso. esempio metodo DomainService:
public ComplexObjectResult GetComplexObject(ComplexObjectParameter test)
{
//do stuff
}
l'oggetto di parametro:
public class ComplexObjectParameter
{
[Key]
public decimal ID { get; set; }
... other fields
}
ottengo questo errore di compilazione: errore 70 Parametro 'test' di entrata funzionamento del dominio 'GetComplexObject' deve essere uno dei serializable predefinita tipi.
Dopo alcune ricerche sul web ho trovato this msdn thread. Si afferma che questa è una limitazione dei servizi RIA e il thread non specifica soluzioni alternative decenti.
Ora sembra che ci siano alcune soluzioni sporchi:
Modificare il parametro complesso di tipo stringa e Serialize/deserializzare il parameterobject noi stessi che trovo una soluzione molto hacky.
Utilizzare il tag [Invoke] nel metodo di servizio del dominio e perdere tutte le funzionalità di tracciamento RIA, per le quali sto utilizzando RIA in primo luogo.
Esistono alternative per le soluzioni citate che presentano meno svantaggi? Qualcuno ha trovato una soluzione più elegante per questo problema?
Grazie
Sono andato con la tua seconda opzione Stephane. I tipi complessi che ho restituito erano di sola lettura sul client, quindi la perdita della funzionalità di tracciamento non era un problema per me. Considera di mettere in soluzione risposte potenziali (anche sporche) ... avrei votato sia per la domanda che per la risposta! –