我有一个应用程序,用户可以为每个对象指定他自己的测量点。然后,这些测量值将用于将对象分类为 A - 需要服务,B - 服务应在 X 天内安排,C - 不需要 ATM 服务
然而,这些对象几乎可以是任何东西,我们无法硬编码如何将测量值聚合到分类,我们需要将其留给用户。
您对我们如何为用户提供输入自己的公式的方式有什么建议吗?它不一定是防白痴的,我们没有那么多客户,所以只要他们能向我们解释,我们就可以帮助他们。
我写了一个开源项目,动态浓缩咖啡 https://github.com/davideicardi/DynamicExpresso/,它可以将使用 C# 语法编写的文本表达式转换为委托(或表达式树)。表达式被解析并转换为表达式树 http://msdn.microsoft.com/en-us/library/bb397951.aspx不使用编译或反射。
你可以这样写:
var interpreter = new Interpreter();
var result = interpreter.Eval("8 / 2 + 2");
or
var interpreter = new Interpreter()
.SetVariable("service", new ServiceExample());
string expression = "x > 4 ? service.SomeMethod() : service.AnotherMethod()";
Lambda parsedExpression = interpreter.Parse(expression,
new Parameter("x", typeof(int)));
parsedExpression.Invoke(5);
我的作品基于 Scott Gu 的文章http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)