动态创建方法并存储在数据库中

本文关键字:数据库 存储 创建 方法 动态 | 更新日期: 2023-09-27 17:50:03

我从来没有做过这样的事情,我想知道我的选择可能是什么。

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

最好让它像Excel一样动态,在那里你可以简单地输入公式,并能够得出结果。在ASP.NET中有哪些选项?

动态创建方法并存储在数据库中

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

那么使用c#作为语言(和反射)有很多选择。Emit(用于代码生成)来创建您自己的简单DSL以及解释器。

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

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