Existe-t-il un moyen de désérialiser les expressions en C #, je voudrais stocker des expressions dans une base de données et les charger au moment de l'exécution.
Existe-t-il un moyen de désérialiser les expressions en C #, je voudrais stocker des expressions dans une base de données et les charger au moment de l'exécution.
Réponses:
J'ai continué à travailler sur la bibliothèque mentionnée par la sérialisation et la désérialisation des arbres d'expressions en C #
Il semble que le projet ait été abandonné (2008) mais j'ai travaillé dessus et il fonctionne maintenant avec .NET 4.0 et Silverlight. J'ai corrigé leur code et l'ai rendu plus indépendant de DAL.
Une autre option est le projet de sérialisation de l'arbre d'expression sur code.msdn.com - semble-t-il être plus ce qui est nécessaire ici?
UPD: maintenant http://archive.msdn.microsoft.com/exprserialization
Il existe un projet sur GitHub / Nuget appelé MetaLinq qui vise à faciliter le travail avec l'expression tress.
Il convertit entre les expressions normales et les `` expressions éditables '' qui sont mutables et entièrement sérialisables, donc peuvent être utilisées avec Json, Xml, Binary, etc.
Consultez également cet article de blog pour plus d'informations.
jetez un œil à ma nouvelle bibliothèque Serialize.Linq . Il sérialise les expressions linq en json, xml et binary.
Pas en entier; cependant, l'exemple Dynamic LINQ peut aider un peu. Vous pouvez certainement sérialiser une expression en une chaîne (dans une certaine mesure - les génériques semblent un peu vicieux), mais il n'y a pas d'analyseur intégré.
Les services WCF RIA permettent la sérialisation IQuerayble<T>
Je travaillais sur un projet de sérialisation d'expressions. C'est OK et vous pouvez l'utiliser. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable