2009-07-16 11 views
2

Je tente de renvoyer une ICollection générique à partir d'un service WCF REST. Est-ce que ce qui suit devrait être possible? Lorsque j'essaie d'exécuter cette opération à partir de mon navigateur Web, une erreur se produit lorsque j'essaye d'exécuter cette opération à partir de mon navigateur Web. En regardant à travers ma trace WCF me montre ceci:WCG WebGet et ICollection <>

Impossible de sérialiser paramètre de type 'System.String []' (pour 'GetStrings' opération, le contrat 'WebConfigurationManager') parce qu'il est pas le type exact « System.Collections .Generic.ICollection`1 [System.String] 'dans la signature de la méthode et n'est pas dans la collection de types connus. Pour sérialiser le paramètre, ajoutez le type à la collection de types connus pour l'opération à l'aide de ServiceKnownTypeAttribute.

Répondre

2

Cela devrait fonctionner:

[ServiceKnownType(typeof(string[]))] 
[ServiceContract] 
public class WebConfigurationManager { 
    [WebGet] 
    [OperationContract] 
    public ICollection<string> GetStrings() { 
     return new string[] { "A", "B", "C" }; 
    } 
} 
0

Andrew m'a orienté dans la bonne direction. La réponse est d'ajouter

[ServiceKnownType(typeof(string[]))] 

au-dessus de l'attribut [ServiceContract].