Silverlight 3 peut-il sérialiser des objets anonymes?Silverlight peut-il sérialiser des objets anonymes?
Répondre
Aucun silverlight 3 ne peut sérialiser un type anonyme. Le seul sérialiseur JSON que Silverlight possède est le DataContractJsonSerializer
. Cependant, cela nécessite que les types soient décorés avec DataContractAttribute
et que les membres soient décorés avec DataMemberAttribute
, ce qui ne sera pas le cas pour les types anonymes.
Toutefois, si votre but est d'interroger certaines données existantes et de générer une sortie de chaîne JSON, vous pouvez envisager d'utiliser des classes trouvées dans l'espace de noms System.Json
. Voici un exemple: -
/// <summary>
/// Helper methods to reduce code needed in constructing JSON items
/// </summary>
public static class JsonHelper
{
public static KeyValuePair<string, JsonValue> CreateProperty(string name, string value)
{
return new KeyValuePair<string, JsonValue>(name, new JsonPrimitive(value));
}
public static KeyValuePair<string, JsonValue> CreateProperty(string name, int value)
{
return new KeyValuePair<string, JsonValue>(name, new JsonPrimitive(value));
}
// Replicate above for each constructor of JsonPrimitive
public static KeyValuePair<string, JsonValue> CreateProperty(string name, JsonValue value)
{
return new KeyValuePair<string, JsonValue>(name, value);
}
}
ci-dessus est tout simplement une classe statique d'aide afin que le code dans la requête LINQ suivante ne soit pas à poilue. Le DataProvider
génère simplement des données de test qui dans ce cas est une liste d'objets qui ont une propriété Name
. Cet exemple noddy génère simplement une liste d'objets qui ont une propriété name
et une propriété count
qui contient le nombre de caractères dans la propriété name.
var list = from item in DataProvider.DataItems()
select (JsonValue)(new JsonObject(
JsonHelper.CreateProperty("name", item.Name),
JsonHelper.CreateProperty("count", item.Name.Length)
));
var result = (new JsonArray(list)).ToString();
Voulez-vous dire anonyme comme dans var
? Cela ne peut être sérialisé par quoi que ce soit.
Je veux dire anonyme comme dans:
new { MyProperty = "Something", MyLocation = "Somewhere" }
et vous pouvez sérialisation à l'aide JavaScriptSerializer dans des conditions normales d'applications .Net, mais il ne marche pas semble être disponible en silverlight. Dommage. Pour ce que cela vaut il n'y a aucune raison que les types anonymes ne puissent pas être sérialisés, c'est désérialiser c'est le problème. –
- 1. Sérialiser une liste de délégués anonymes
- 2. Silverlight appels asynchrones et des méthodes anonymes
- 3. Sérialiser des objets contenant des chaînes utf-8
- 4. Silverlight 4 Liaison de données avec des types anonymes
- 5. WCF recommande des approches pour sérialiser plusieurs objets
- 6. iPhone: sérialiser et envoyer des objets via bluetooth?
- 7. Sérialiser les objets Javascript internes (comme Range)
- 8. sérialiser les objets java à l'objectif c plist
- 9. Sécurisation des téléchargements d'images anonymes
- 10. Exceptions avec des threads anonymes
- 11. WCF: Sérialiser des objets complexes avec des membres en lecture seule
- 12. Silverlight - LinqToEntities - Comment puis-je retourner les types anonymes
- 13. Je voudrais sérialiser un fichier xml en objets Java
- 14. Si je remplis un objet GridView avec des objets anonymes, comment puis-je obtenir leurs propriétés?
- 15. Comment créer des objets anonymes de type IQueryable à l'aide de LINQ
- 16. Passez et recevez des objets anonymes entre les méthodes en C#
- 17. Pourquoi grouper par clé des objets anonymes ne se comporte pas comme prévu?
- 18. Liaison à des objets dynamiques dans Silverlight 4
- 19. Silverlight 4 Liaison à la Liste des objets
- 20. sérialiser sans un formulaire?
- 21. XML Sérialiser la classe anonyme
- 22. Comment sérialiser des collections dans .net
- 23. C# et tableaux d'objets anonymes
- 24. Comment sérialiser IDictionary
- 25. Sérialiser des objets en C# 4.0, existe-t-il un moyen plus simple?
- 26. Est-il possible de sérialiser et de désérialiser des objets en C++?
- 27. Comment sérialiser/désérialiser une entité NHibernate qui a des références à d'autres objets?
- 28. Comment sérialiser des objets DateTime dans .NET d'une manière conforme aux normes
- 29. Liste, SortedList, Dictionnaire pour stocker des objets par clé et les sérialiser?
- 30. Silverlight - objets de collision de jeux
Eh bien, je pensais que cela pourrait être le cas. Dommage. J'espère qu'ils ramèneront JavaScriptSerializer dans Silverlight, bientôt. –