Sto provando a creare manualmente un servizio dati WCF utilizzando un modello di dati POCO e non riesco a capire come esporre correttamente i valori enum
. Assumendo un modello semplice come:Utilizzo di enumerazioni nei servizi dati WCF
public class Order
{
public int ID {get; set;}
public string Description {get; set;}
public OrderStatus Status {get; set;}
}
public enum OrderStatus
{
New,
InProcess,
Complete
}
Come si espone le preziose informazioni nella proprietà OrderStatus
tramite il servizio dati OData WCF?
Se non si esegue alcuna operazione, il servizio dati genera un errore di runtime (enum non è una proprietà valida). L'unica risposta che ho visto che almeno risolve l'errore è quello di marcare la proprietà enum
come Ignorato, come ad esempio:
[System.Data.Services.IgnoreProperties("Status")]
public class Order ...
Questo funziona, ma ti costringe a "omettere" preziose informazioni dal livello di servizio. Ci sono altre opzioni per lavorare con i valori enum in WCF Data Services?
EDIT: Si prega di notare questo è WCF Data Services (aka Astoria). Non si tratta di servizi WCF grezzi, nel qual caso le risposte sono più chiare.
Si consiglia di evitare le enumerazioni in webservices perché creano problemi all'indietro compatibili sottili. Vedi http://stackoverflow.com/a/788281/52277 –