2010-11-10 5 views
0

Pour une raison quelconque, ce code ne compilera pas:C# Generics: 'x' est un 'type' mais utilisé comme une 'variable'

JsonSerializer serializer = new JsonSerializer(); 
_sectionStories = serializer.Deserialize < IDictionary<int, ObservableCollection<Story>>(new JTokenReader(contents)); 

L'erreur:

Error 91 'System.Collections.Generic.IDictionary>' is a 'type' but is used like a 'variable'

Qu'est-ce que est-ce que je fais mal ici? J'ai l'impression de manquer quelque chose de basique.

+8

il faudrait peut-être _sectionStories = serializer.Deserialize < IDictionary >> (nouveau JTokenReader (contenu)); – sloth

+1

@dkson - Yup, a> est clairement absent ici puisqu'il a 3 <'s and 2 >;) –

+1

Comme @dkson a dit que vous avez manqué '>' –

Répondre

13

Cela ressemble à une faute de frappe. Je vois trois < mais seulement deux >.

7

Il vous manque un >.

À titre d'illustration, j'avons identifié les < s et > s ci-dessous:

_sectionStories = serializer.Deserialize< 
        IDictionary< 
         int, 
         ObservableCollection<Story> 
        > 
        >(new JTokenReader(contents))); 
0

Je pense que la bonne synthaxe est:

JsonSerializer serializer = new JsonSerializer(); 
     _sectionStories = serializer.Deserialize < IDictionary<int, ObservableCollection<Story>>>(new JTokenReader(contents)); 
+2

'()>' ne fonctionnera pas. –

Questions connexes