Czy istnieje sposób na deserializację wyrażeń w C #, chciałbym przechowywać wyrażenia w bazie danych i ładować je w czasie wykonywania.
Czy istnieje sposób na deserializację wyrażeń w C #, chciałbym przechowywać wyrażenia w bazie danych i ładować je w czasie wykonywania.
Odpowiedzi:
Kontynuowałem pracę nad biblioteką, o której wspomniano w Serializacji i deserializacji drzew wyrażeń w C #
Wygląda na to, że projekt został porzucony (2008), ale trochę popracowałem nad nim i teraz działa z .NET 4.0 i Silverlight. Zrobiłem poprawki błędów w ich kodzie, a także uczyniłem go bardziej niezależnym od DAL.
Inną opcją jest projekt serializacji drzewa wyrażeń w witrynie code.msdn.com - wydaje się, że jest więcej tego, czego potrzeba tutaj?
UPD: teraz http://archive.msdn.microsoft.com/exprserialization
W serwisie GitHub / Nuget istnieje projekt o nazwie MetaLinq, którego celem jest ułatwienie pracy z warkoczem wyrażeń.
Konwertuje między zwykłymi wyrażeniami i `` EditableExpressions '', które są zmienne iw pełni serializowalne, więc mogą być używane z Json, Xml, Binary itp.
Sprawdź również ten wpis na blogu, aby uzyskać więcej informacji.
spójrz na moją nową bibliotekę Serialize.Linq . Serializuje wyrażenia linq do formatu json, xml i binarnego.
Nie w całości; Jednak przykład Dynamic LINQ może trochę pomóc. Z pewnością można serializować wyrażenie do łańcucha (do pewnego stopnia - typy generyczne wyglądają trochę dziwnie), ale nie ma wbudowanego parsera.
Usługi WCF RIA umożliwiają serializację IQuerayble<T>
Pracowałem nad projektem serializacji wyrażeń. Jest OK i możesz go używać. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable