Come si usano le enumerazioni con XML-RPC e C #?
-
11-07-2019 - |
Domanda
Sto usando il framework XMLRPC di Cook Computing in C #. Sto chiamando una funzione remota che prevede un int. Voglio usare un'enumerazione nel codice client invece di chiamare semplicemente la funzione con le cifre hardcoded nei parametri della funzione.
Il codice viene compilato correttamente, ma durante il test viene generata una XmlRpcUnsupportedTypeException. Il messaggio afferma che la mia enumerazione non può essere mappata su un tipo XML-RPC. L'enum è il seguente:
public enum Codes : int
{
Installed = 903,
}
Ho la sensazione che ci sia qualcosa di semplice che sto trascurando, ma non riesco a metterci il dito, quindi sono qui a far brillare il mio segnale Bat tra le nuvole!
Soluzione
hai provato il casting esplicito? (Int) installata ??p>
MSDN:
Il tipo sottostante specifica quanto l'archiviazione è allocata per ciascuno enumeratore. Tuttavia, un cast esplicito è necessario convertire dal tipo enum a un tipo integrale. Ad esempio, il la seguente istruzione assegna il enumeratore Sun in una variabile di digita int usando un cast per convertire da enum a int:
int x = (int) Days.Sun;
Altri suggerimenti
Devi esplicitamente lanciarlo in un int:
int code = Codes.Installed; // doesn't work.
int code = (int) Codes.Installed; // works.