【问题标题】:C# Function Similar to PHP Eval()类似于 PHP Eval() 的 C# 函数
【发布时间】:2012-05-09 09:35:51
【问题描述】:

我正在寻找一种方法来显示存储在 .NET 和 C# 网页上的数据库中的代码 sn-ps,我看到了我一段时间前一直在寻找的确切功能,但我不记得搜索词是什么我使用或专门设计用于执行此操作的 C# 函数的名称。

本质上,它是 PHP 的 Eval() 函数的 C# 版本,因此我可以渲染多年来收集的代码示例,并查看最终结果以及实际源代码。我确定这已经被问过了,但是当我查看这里的现有问题时,我找不到我想要的东西。

这将是我网站上的一个受密码保护的页面,仅供我查看(理论上至少是这样),因此我不会过分担心有人运行恶意代码。但我很欣赏一些人在回答我的问题之前可能觉得有义务提供的善意警告。说真的,我愿意。

我感觉大约有 10 个人会看到这个问题,然后说,“好吧,显然是(在此处插入函数名称),你这个愚蠢的 wabbit。”所以这是我承认我不知道的耻辱的方式,在前面。尤其是当我刚刚在 一周 前看到它时。

提前致谢! 保罗


附录:我找到了以下代码,它在 HTML、JS 和 CSS 上的作用就像一个魅力。由于我只使用 C# 几个月,我没有很多 C# 代码要渲染,所以它工作得很好。

String EncodedString = rs["Code"].ToString();
StringWriter writer = new StringWriter();
Server.HtmlDecode(EncodedString, writer);
String DecodedString = writer.ToString();
codeDecoded.Text = DecodedString;

【问题讨论】:

  • LinqPad (本地工具)可能足以满足您的需求。
  • @ChrisGessler:评论我的问题还是我问的方式?哈哈哈……
  • @AlexeiLevenkov:我不是在寻找一个工具,更像是一个 C# 函数,它允许我直接从数据库中获取代码并将其显示在网页上,这样我就可以找到我的代码片段已经在其他项目中使用过,并在当前项目中重复使用。不过我下载了 LinqPad,我打算检查一下...
  • @Realto619 - 过去,为 C# 脚本编写“评估”方法并不容易。微软让它变得更容易了,但仍然是一个很大的主题。

标签: c#


【解决方案1】:

看看CSharpCodeProvider 类。

here 提出了类似的问题。

【讨论】:

    【解决方案2】:

    只是好奇,您是在寻找类似 REPL 的体验还是只是一次性评估?

    假设现在是后者,如果您可以使用 Roslyn,他们的脚本 API 应该可以正常工作。

    http://visualstudiomagazine.com/articles/2011/11/16/the-roslyn-scripting-api.aspx

    【讨论】:

    • 我真正在寻找的是一种在网页上呈现存储在数据库中的 HTML 和 C# 代码的方法。我有很多多年来收集的代码示例,我希望能够直接从表中存储的记录中显示,而不仅仅是查看我必须保存为的 textarea 字段中的源代码。 html 或 .aspx.cs 文件并在其他地方加载。我知道有一个 C# 函数完全符合我的要求,但我不记得了...
    • 好吧,对于呈现 HTML 和 C# 代码,我通常建议使用 Razor 引擎(您可以在 asp.net 之外使用它)。你想运行的 C# 代码是完整的类定义、方法定义还是表达式(如“2+2”)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多