我之前从未做过这样的事情,我想知道我的选择是什么。
我正在处理查询第三方监控系统的SNMP属性的应用程序。某些属性返回一个值,例如自大纪元时间以来的1/100秒。其他人返回秒数,可以转换为TimeSpan等。我想通过Web UI启用的是一个人选择SNMP属性,并能够创建自己的转换方法,然后可以存储在数据库中,并且每当有人想要看到"转换的" (也是更有意义的)价值。
最好是像Excel一样动态,你可以简单地输入你的公式,并能够得出结果。我有什么选择在ASP.NET内部做这样的事情?
答案 0 :(得分:0)
我能想到的最简单的方法是使用可在浏览器中运行的JavaScript函数。您也可以使用例如服务器在服务器上运行JavaScript。 Jint
然后有很多选择使用C#作为语言(和代码生成的Reflection.Emit)来创建自己的简单DSL和解释器。
另一种解决方案可能是让用户在SQL中指定转换函数,因此转换后的值可以与原始值一起存储。
对于所有这些选项,请仔细评估安全隐患(在其他用户计算机和/或服务器上执行用户代码)。