繁体   English   中英

C#执行变量代码

[英]C# execute variable code

是否可以从字符串变量执行代码,例如:
字符串mystring =“ Console.WriteLine(\\” Hi \\“);”; 是否可以执行myst​​ring的内容(打印“ Hi”)?

可以使用System.Reflection.Emit或System.CodeDom命名空间,但这并不是一个好主意,因为没有机制可以控制哪些命名空间是允许的。 用户可以构建一个会擦除硬盘驱动器的字符串。

类似eval()的函数是巨大的安全漏洞,应避免使用。 优选的替代方案是DSL(领域专用语言)

是。 在运行时启动编译器并传递代码。 它将吐出可执行代码。 请参阅System.CodeDom命名空间,尤其是System.CodeDom.Compiler

使用代码DOM

需要使用反射来获得类似的东西。 C#不是动态的或解释性的语言,因此请不要开箱即用

http://www.codeproject.com/KB/dotnet/Expr.aspx

如何动态评估C#代码?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM