2010-11-01 2 views
0

Je suis heureux de voir que 4.0.2 a un support pour .net 3.5, mais il n'y a pas d'exemples pour comprendre comment l'utiliser, sans mot-clé dynamique.Comment convertir de l'objet à quelque chose de plus lisible comme IDictionary

Par exemple, j'ai

FacebookApp app = new FacebookApp(GetSettings());     

object result = app.Fql(string.Format("SELECT id,name,type FROM profile WHERE id={0}", strID)); 

Quelle est la façon la plus simple de convertir résultat au dictionnaire ou quelque chose de plus utile?

Répondre

0

Un dictionnaire est généralement une liste de 2 éléments.

Dictionnaire (TKey, TValue)

Dans les circonstances de votre sql, vous serez en revenir 3 champs de votre résultat, et à moins que je manque quelque chose qu'il ne devrait être 1 jeu de résultats.

un seul objet avec 3 paramètres devrait être suffisant.

Maintenant, si votre retour de plusieurs lignes avec seulement deux champs ... maintenant c'est une histoire différente.

+0

Patrick, le nom de réponse retournée = valeur, donc je pense que le dictionnaire est le chemin à parcourir, par exemple: "id": "1234", "nom": "Jack Juiceson", "prénom": "Jack", "last_name": "Juiceson", etc –

+0

je voudrais tendre à désaccord ... un dictionnaire est mieux adapté (imo) quand vous avez une liste de valeurs répétées en utilisant les mêmes paramètres ... exemple; Dictionary Nom; les éléments du dictionnaire seraient Name ["Bob"] = "Bob Smith"; Nom ["Fred"] = "Fred Jones"; etc .. Ce dont vous avez besoin est un objet de valeur que vous pouvez ensuite sérialiser en json ... il aurait probablement aidé dans votre question initiale si vous avez mentionné que vous utilisiez json ... cela change un peu les choses. – Patrick

2

Je l'ai trouvé, pas aussi sexy que dynamique 4.0, mais il fonctionne:

FacebookApp app = new FacebookApp(GetSettings()); 
var result = app.Fql(string.Format("SELECT id,name,type FROM profile WHERE id={0}", strID)); 
var dicResult = ((JsonArray)result)[0] as IDictionary<string, object>; 

espère qu'il aidera un autre 3.5 développeur

Questions connexes