Je rencontre des problèmes pour envoyer une collection d'énumérations à une méthode de service WCF. J'ai utilisé ce poste comme guide: Sharing Enum with WCF ServiceComment envoyer une collection d'énumérations à un service WCF
[ServiceContract]
[ServiceKnownType(typeof(MyEnum))]
[ServiceKnownType(typeof(List<MyEnum>))]
public interface IMyService{
[OperationContract]
MyEnum ServiceMethod1();
[OperationContract]
IList<MyEnum> ServiceMethod2();
[OperationContract]
IList<MyEnum> ServiceMethod3(MyEnum e);
[OperationContract]
IList<MyEnum> ServiceMethod4(IList<MyEnum> e);
}
[Serializable]
[DataContract]
public enum MyEnum{
[EnumMember] red,
[EnumMember] green,
[EnumMember] blue
};
ServiceMethod1, ServiceMethod2 et ServiceMethod3 fonctionnent correctement. Je reçois l'erreur suivante lors de la tentative d'envoi d'une liste d'énumérations à ServiceMethod4.
Operation 'ServiceMethod4' in contract 'IMyService' has a query variable named 'e' of type 'System.Collections.Generic.IList`1[MyEnum]', but type 'System.Collections.Generic.IList`1[MyEnum]' is not convertible by 'QueryStringConverter'. Variables for UriTemplate query values must have types that can be converted by 'QueryStringConverter'.
Dois-je créer un QueryStringConverter personnalisé?
Merci!
J'utilise un élément 'webHttpBinding' et appeler mon service avec une simple requête Get passer les params sur la chaîne de requête. http: //serveur/MyService.svc/ServiceMethod4? E = 0 & e = 1 & e = 2 Pourquoi 'webHttpBinding' ne sérialise-t-il pas une liste d'énumérations? 'webHttpBinding' sérialisera une liste d'objets. –