Reputation: 6753
Is there a way to Deserialize Expressions in C#, I would like to store Expressions in a Database and load them at run time.
Upvotes: 97
Views: 46961
Reputation: 62990
There's an project on GitHub/Nuget called MetaLinq that aims to make working with expression tress more easy.
It converts between normal Expressions and 'EditableExpressions' which are mutable and fully Serializable, so can be used with Json, Xml, Binary etc.
Also check this blog post for more info.
Upvotes: 17
Reputation: 22458
I was working on a project for serializing expressions. It's OK and you can use it. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable
Upvotes: 1
Reputation: 398
Other option is the Expression Tree Serialization project on code.msdn.com - would appear to be more what is needed here?
UPD: Now http://archive.msdn.microsoft.com/exprserialization
Upvotes: 14
Reputation: 10970
have a look at my new library Serialize.Linq. It serializes linq expressions to json, xml and binary.
Upvotes: 13
Reputation: 10109
I continued work on the library that was mentioned by Serializing and Deserializing Expression Trees in C#
It looks like the project was abandoned (2008) but I did some work on it and now it works with .NET 4.0 and Silverlight. I made bug fixes to their code and also made it more DAL-independent.
http://expressiontree.codeplex.com/
Upvotes: 49
Reputation: 6795
WCF RIA Services allows for serializing IQuerayble<T>
WCF RIA Services Part 3 – Updating Data
Upvotes: 2
Reputation: 1064134
Not in full; however, the Dynamic LINQ sample may help a bit. You can certainly serialize an expression to a string (to an extent - generics look a bit screwy), but there is no inbuilt parser.
Upvotes: 3