2010-06-07 5 views
2

Supposons que vous ayez:WCF ENUM - un moyen de transférer les valeurs enum valides et les numéros

public enum Priority : short 
     { 

      Low = 100 
      Normal = 200, 
      High = 300 
     } 

Je voudrais appeler le service WCF avec appel suivant

myWCF.call(Priority.Low); 
myWCF.call(Priority.High); 
myWCF.call(105); 

Est-ce possible de faire sans réécrire la moitié de la pile WCF? Je préfère comme solution où tous les paramètres de configuration de WCF seraient faits au type enum.

Merci.

+1

Que demandez-vous? – SLaks

+0

Demandez-vous si vous pouvez avoir une méthode surchargée en WCF? Je ne sais pas pourquoi vous pensez que vous devez réécrire la pile WCF. Je pense que vous seriez surpris de voir à quel point la WCF est extensible. –

Répondre

1

Oui, bien sûr - vous pouvez ajouter une deuxième propriété à votre contrat de données qui reflète la valeur int de l'ENUM:

[DataContract] 
public class YourData 
{ 
    [DataMember] 
    public Priority MyPriority { get; set; } 

    [DataMember] 
    public int MyPriorityAsInt 
    { 
     get { return (int)MyPriority; } 
     set { ; } 
    } 
} 

Je pense que cela devrait fonctionner - et MyPriorityAsInt devrait toujours refléter avec précision la valeur stocké dans MyPriority. Si vous le souhaitez, vous pouvez même créer la méthode setter pour MyPriorityAsInt pour définir la valeur MyPriority selon vos besoins.

Questions connexes