Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用ASP.NET核心Web应用评估存储为字符串的自定义逻辑?_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 如何使用ASP.NET核心Web应用评估存储为字符串的自定义逻辑?

C# 如何使用ASP.NET核心Web应用评估存储为字符串的自定义逻辑?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个在ASP.NET Core 2.0 MVC中构建的学校管理系统,每个学校都有一个用户(它是一个单应用程序部署和多用户) 然而,每所学校都有自己的计算学生成绩的方法。它不是一个简单的平均值,有时有一些条件和一些简单的逻辑。我们的产品应用于南美,每所学校都有自己的评分流程 在我们以前的系统中,我们使用一个数据库注册表,其中包含一个PHP代码,该代码很容易作为计算等级的PHP逻辑进行计算,有时在呈现的页面中添加一个自定义元素 我正在寻找一些可以让我使用新的ASP.NET MVC Core 2.

我有一个在ASP.NET Core 2.0 MVC中构建的学校管理系统,每个学校都有一个用户(它是一个单应用程序部署和多用户)

然而,每所学校都有自己的计算学生成绩的方法。它不是一个简单的平均值,有时有一些条件和一些简单的逻辑。我们的产品应用于南美,每所学校都有自己的评分流程

在我们以前的系统中,我们使用一个数据库注册表,其中包含一个PHP代码,该代码很容易作为计算等级的PHP逻辑进行计算,有时在呈现的页面中添加一个自定义元素

我正在寻找一些可以让我使用新的ASP.NET MVC Core 2.0应用程序实现类似结果的东西。一旦编译了C#,就使用MSIL而不是像php这样的JIT代码


如何基于字符串计算自定义逻辑?这在C#中可能吗?

一个选项是定义表达式语法,然后为它编写一个解析器,输出一个
System.Linq.expression
。然后,您可以
.Compile()
Invoke()
调用它

        System.Linq.Expressions.Expression<Func<int, int, int, double>> calculateGrade;

        calculateGrade = (int english, int math, int french) => (english + math + french) / 3.0;

        double result = calculateGrade.Compile().Invoke(23, 34, 19);
System.Linq.Expressions.Expression calculateGrade;
calculateGrade=(国际英语、国际数学、国际法语)=>(英语+数学+法语)/3.0;
double result=calculateGrade.Compile().Invoke(23,34,19);
您可以使用解析结果中的
expression.Lambda
expression.Parameter
等组合一个常量表达式,而不是此处显示的常量表达式

我自己的库AboditNLP做了类似的事情。它解析英语语言(NLP)描述或序列化表达式以创建解析表达式树,然后可以将其转换为
System.Linq.expression
,并根据内存中的对象进行计算,也可以将其转换为SQL表达式以对数据库进行查询


有关可使用的解析器的一些建议,请参阅。

展示您迄今为止所做的工作。我们尚未计算新闻系统中的平均分数。我们不是来为您编写逻辑的。这取决于你去尝试。如果您在实现的某个特定部分遇到困难,那么请提供一个解决方案。我不是要求提供“随时可用”的代码或逻辑。我不是新手。。我想问的是,在编译c#后,是否可以使用asp.net实现相同的结果,使用MSIL而不是像php这样的JIT代码。我想知道类似“尝试使用这种方法”或者“使用c#是不可能的”这样的答案。如果我没有把问题说清楚,我很抱歉。我自己也有语言障碍。有很多方法取决于你想做什么。在MVC5中,您可以创建一个自定义视图引擎,以便能够执行存储在数据库中的视图(非常确定您仍然可以在.NETCore中执行)。您可以使用来动态构建自己的逻辑。或者使用诸如或之类的库来执行逻辑或基于字符串输入进行数学运算。