2017-10-09 2 views
0

je la propriété suivante dans un DTO:Json désérialisation Tuples avec des variables nommées

public IReadOnlyList<(int MyNameA, int MyNameB)> Occurences { get; set; } 

Si je vous envoie la charge utile JSON suivante à mon contrôleur MVC il woks:

"Occurences":[{"Item1" : 10, "Item2" : 2}] 

si j'envoie ce qui suit alors le contrôleur voit (0,0) plutôt que (10,2):

"Occurences":[{"MyNameA" : 10, "MyNameB" : 2}] 
+1

Juste pour être sûr. Pourquoi utilisez-vous un tuple au lieu d'un format DateTime? – aloisdg

+0

Qu'est-ce que vous utilisez pour le désérialiser? Avez-vous vérifié que la dernière version supporte les tuples nommés? –

+0

@aloisdg tks mais ce n'est pas pertinent à la question que je vais modifier pour donner d'autres variables nommées que l'année et le mois –

Répondre

0

Newtonsoft.Json ne prend pas encore en charge les tuples C# 7, vous pouvez suivre la progression via ce problème GitHub: https://github.com/JamesNK/Newtonsoft.Json/issues/1230.

Je vous suggère de continuer à le transmettre comme premier exemple, si vous avez vraiment besoin d'être nommé comme MyNameA et MyNameB alors vous pourriez simplement créer un nouveau tuple à partir de l'ancien.