开发者

How do you do dynamic script evaluation in C#?

开发者 https://www.devze.com 2023-01-04 02:37 出处:网络
What is the state of dynamic code evaluation in C#?For a very advanced feature of an app I\'m working on, I\'d like the users to be able to enter a line of C# code that should evaluate to a boolean.

What is the state of dynamic code evaluation in C#? For a very advanced feature of an app I'm working on, I'd like the users to be able to enter a line of C# code that should evaluate to a boolean.

Something like:

DateTime.Now.Hours > 12 && DateTime.Now.Hours < 14

I want to dynamically eval this string and capture the result as a boolean.

I tried Microsoft.JScript.Eval.JScriptEvaluate, and this worked, but it's technically deprecated and it only works with Javascript (not ideal, but workable). Additionally, I'd like to be able to push objects into the script engine so that they can be used in the evaluation.

Some resources I find mentioned dynamically compiling assemblies, but this is more开发者_运维百科 overhead than I think I want to deal with.

So, what is the state of dynamic script evaluation in C#? Is it possible, or am I out of luck?


You use the DLR's ScriptEngine, here is an example:

http://www.codeproject.com/KB/codegen/ScriptEngine.aspx


The most informative link is this one:

Execute a string in C# 4.0

Expression Trees might also be of interest:

http://community.bartdesmet.net/blogs/bart/archive/2009/08/10/expression-trees-take-two-introducing-system-linq-expressions-v4-0.aspx

Alternatively these links:

  • http://www.codeproject.com/KB/dotnet/Expr.aspx
  • How can I evaluate a C# expression dynamically?
  • How can I evaluate C# code dynamically?
0

精彩评论

暂无评论...
验证码 换一张
取 消