Comment puis-je utiliser une énumération dans un datacontract WCF

Je veux avoir une énumération dans un datacontract d'un webservice WCF.

J'essaie d'utiliser

[DataContract]
class myclass
{
    [DataMember]
    public int id {get; set;}

    [DataContract]
    public enum myenum
    { 
        [EnumMember]
        a,
        [EnumMember]
        b
    }
}

Mais je ne suis pas en mesure d'accéder à enum au client wcf. S " il vous plaît laissez-moi savoir ce que je fais mal.

24
demandé sur Jonathan S. 2010-12-23 12:08:44

2 réponses

Pour être inclus dans le mex / wsdl, l'énumération doit être utilisée quelque part dans le graphique, par exemple il devrait y avoir une propriété quelque part de type myenum. Les Types qui ne sont pas activement utilisés dans le graphique sont omis.

Notez également que vous n'avez pas besoin d'annoter les énumérations du tout - elles fonctionneront très bien. Vous n'avez besoin que d'attributs sur les énumérations si vous souhaitez personnaliser leur comportement sur le fil.

35
répondu Marc Gravell 2010-12-23 09:11:27

Comme L'a dit Marc-utilisez-le. Le type de données lui-même n'est pas un problème jusqu'à ce qu'il soit requis iirc.

Part de cela n'est pas nécessaire D'avoir Datacontract et EnumMember dessus (des règles spéciales s'appliquent). Voir http://msdn.microsoft.com/en-us/library/aa347875.aspx pour plus d'informations.

2
répondu Tedd Hansen 2010-12-23 09:17:36