Gibt es eine Möglichkeit, Ausdrücke in C # zu deserialisieren? Ich möchte Ausdrücke in einer Datenbank speichern und zur Laufzeit laden.
Gibt es eine Möglichkeit, Ausdrücke in C # zu deserialisieren? Ich möchte Ausdrücke in einer Datenbank speichern und zur Laufzeit laden.
Antworten:
Ich setzte die Arbeit an der Bibliothek fort, die durch Serialisieren und Deserialisieren von Expressionsbäumen in C # erwähnt wurde.
Es sieht so aus, als ob das Projekt abgebrochen wurde (2008), aber ich habe einige Arbeiten daran durchgeführt und jetzt funktioniert es mit .NET 4.0 und Silverlight. Ich habe Fehlerbehebungen an ihrem Code vorgenommen und ihn auch DAL-unabhängiger gemacht.
Eine andere Option ist das Expression Tree Serialization- Projekt auf code.msdn.com - scheint mehr zu sein, was hier benötigt wird?
UPD: Jetzt http://archive.msdn.microsoft.com/exprserialization
Auf GitHub / Nuget gibt es ein Projekt namens MetaLinq , das die Arbeit mit Ausdrucksstress einfacher machen soll.
Es konvertiert zwischen normalen Ausdrücken und 'EditableExpressions', die veränderlich und vollständig serialisierbar sind und daher mit Json, Xml, Binary usw. verwendet werden können.
Überprüfen Sie auch diesen Blog-Beitrag für weitere Informationen.
Schauen Sie sich meine neue Bibliothek Serialize.Linq an . Es serialisiert Linq-Ausdrücke in JSON, XML und Binär.
Nicht vollständig; Das Dynamic LINQ- Beispiel kann jedoch etwas hilfreich sein. Sie können einen Ausdruck sicherlich in einen String serialisieren (bis zu einem gewissen Grad - Generika sehen etwas verrückt aus), aber es gibt keinen eingebauten Parser.
WCF RIA Services ermöglicht die Serialisierung IQuerayble<T>
Ich habe an einem Projekt zur Serialisierung von Ausdrücken gearbeitet. Es ist in Ordnung und Sie können es verwenden. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable