Comment utiliser les énumérations avec XML-RPC et C #?
-
11-07-2019 - |
Question
J'utilise le framework XMLRPC de Cook Computing en C #. J'appelle une fonction distante qui attend un int. Je souhaite utiliser une énumération dans le code client au lieu d'appeler simplement la fonction avec les chiffres codés en dur dans les paramètres de la fonction.
Le code est compilé avec succès, mais lors du test, une exception XmlRpcUnsupportedTypeException est levée. Le message indique que mon énumération ne peut pas être mappée sur un type XML-RPC. L'énumération est la suivante:
public enum Codes : int
{
Installed = 903,
}
J'ai l'impression qu'il y a quelque chose de simple que je néglige, mais que je ne peux pas mettre le doigt dessus, alors je fais briller mon signal de chauve-souris dans les nuages!
La solution
essayé le casting explicite? (int) installé
MSDN:
Le type sous-jacent spécifie combien le stockage est alloué pour chaque énumérateur. Cependant, une distribution explicite est nécessaire pour convertir du type enum à un type intégral. Par exemple, le déclaration suivante assigne la énumérateur Sun à une variable du tapez int en utilisant un cast pour convertir d'enum à int:
int x = (int) Days.Sun;
Autres conseils
Vous devez explicitement le convertir en int:
int code = Codes.Installed; // doesn't work.
int code = (int) Codes.Installed; // works.