[英]C# execute variable code
是否可以从字符串变量执行代码,例如:
字符串mystring =“ Console.WriteLine(\\” Hi \\“);”; 是否可以执行mystring的内容(打印“ Hi”)?
可以使用System.Reflection.Emit或System.CodeDom命名空间,但这并不是一个好主意,因为没有机制可以控制哪些命名空间是允许的。 用户可以构建一个会擦除硬盘驱动器的字符串。
类似eval()的函数是巨大的安全漏洞,应避免使用。 优选的替代方案是DSL(领域专用语言) 。
是。 在运行时启动编译器并传递代码。 它将吐出可执行代码。 请参阅System.CodeDom
命名空间,尤其是System.CodeDom.Compiler
。
使用代码DOM
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.