In two of my open source projects (CoolStorage.NET and ProMesh.NET), I have to parse expressions from a string at runtime. Both products include a simple parser that supports most of the .NET expression syntax, but it is still too restricted compared to real C# expressions.
So I decided to create a separate C# open source project that allows you to include C# 2.0 expression parsing in your application.
The features of this library:
The late-bound aspect is quite important. The expression parser can be called with a context object that contains all the variables and classes you want to expose to the expression. It is obvious that the expression parser doesn't know about the types of the objects you supplied, so when evaluating the expression, LazyParser.NET will use the same logic as the C# 2.0 compiler to determine what overloaded method to call, or what type of value to return from an expression, based on the runtime types in the context.
The project is almost ready to published as version 0.9. I still need to add some stuff like indexing operators, type casting and conditional operators, but other than that is working great.
The first version will be published on CodePlex sometime next week.
UPDATE: LazyParser.NET 0.9.1 has been published on CodePlex