【问题标题】:Dynamically create method and store in database动态创建方法并存储在数据库中
【发布时间】:2015-08-02 12:47:40
【问题描述】:

我以前从未做过这样的事情,我想知道我的选择是什么。

我正在开发的一个应用程序查询第三方监控系统的 SNMP 属性。一些属性返回一个值,例如自 Epoch 时间以来的 1/100 秒。其他人返回秒数,可以转换为 TimeSpan 等。我想通过 Web UI 启用的是一个人选择 SNMP 属性,并能够创建自己的转换方法,然后可以存储在数据库中,并在每次有人想要查看“转换后的”(更有意义的)值时使用。

最好让它像 Excel 那样动态,您可以在其中简单地输入公式,并能够得出结果。我有哪些选择可以在 ASP.NET 中执行此类操作?

【问题讨论】:

    标签: c# asp.net asp.net-mvc dynamic


    【解决方案1】:

    我能想到的最简单的方法是在浏览器中运行 JavaScript 函数。您还可以在服务器上运行 JavaScript,例如使用Jint

    然后有很多选择,从使用 C# 作为语言(以及使用 Reflection.Emit 进行代码生成)到创建自己的简单 DSL 以及解释器。

    另一种解决方案可能是让用户在 SQL 中指定转换函数,因此转换后的值可以与原始值一起存储。

    对于所有这些选项,请仔细评估安全隐患(在其他用户机器和/或您的服务器上执行用户代码)。

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 1970-01-01
      • 2014-05-30
      • 2021-01-24
      • 2012-08-29
      • 2016-11-18
      • 2011-11-19
      • 2013-07-09
      • 2019-01-29
      相关资源
      最近更新 更多