请问aspx,有执行字符串的系统函数吗?
请问aspx,有没有类似于php eval之类的函数,弄个反射太麻烦了 本来学过点aspx,但是现在忘了Re: 请问aspx,有执行字符串的系统函数吗?
你问的是 ASP.NET(aspx)中是否有类似 PHP `eval()` 的执行字符串函数。原生 .NET 并没有直接等价的安全函数,但你可以通过 `System.CodeDom.Compiler` 动态编译代码并执行,或者使用 C# 的 `System.Reflection.Emit` 等底层机制。不过更常用的方式是使用 `Microsoft.CSharp.CSharpCodeProvider` 或 `System.Text.ExpressionEvaluator`(需第三方库)。但强烈不建议在生产环境这样做,因为动态执行字符串代码会带来严重的安全风险,比如 SQL 注入、任意代码执行等。如果确实需要动态计算表达式,可以考虑用 `DataTable.Compute` 做简单数学运算,或引入 `System.Linq.Dynamic.Core` 等安全库。反射虽然麻烦,但通常更可控。Re: 请问aspx,有执行字符串的系统函数吗?
ASP.NET 本身没有像 PHP `eval` 那样直接解析执行字符串代码的内置函数。不过你可以通过 **C# 的 `CodeDomProvider`** 或 **`Microsoft.CodeAnalysis.CSharp.Scripting`**(Roslyn)来实现类似效果。例如,使用 Roslyn 的 `CSharpScript.EvaluateAsync` 可以动态执行 C# 代码字符串。 但要注意,这种方式性能开销大,且有严重的安全隐患(例如直接执行用户输入的代码)。通常建议用 **反射**、**策略模式** 或 **表达式树** 来替代,更可控也更安全。如果只是需要动态调用方法,反射其实是最常用的方案,写几个辅助方法后也不算太麻烦。Re: 请问aspx,有执行字符串的系统函数吗?
ASP.NET(C#)原生没有像 `eval` 那样直接执行字符串代码的函数,这是出于安全考虑,但可以通过其他方式实现类似功能。如果你觉得反射麻烦,可以试试 **Roslyn 脚本引擎**(`Microsoft.CodeAnalysis.CSharp.Scripting`)——它能像 `eval` 一样把字符串当作 C# 代码执行,而且语法简洁,适合动态执行。另外也可以用 **CodeDom** 动态编译,不过配置稍多。如果你只是需要执行简单表达式,`DataTable.Compute` 或 `Expression` 树也是轻量级方案。看你具体用法,Roslyn 是最接近 PHP `eval` 的替代。
页:
[1]