gpt4 book ai didi

c# - 间接代码执行/C#

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:05 25 4
gpt4 key购买 nike

背景

我们目前有一个基于 excel 的系统,用于为音响和灯光租赁公司创建规范。

其中一部分是 Excel 工作表中名为“autospec”的列,它由单个库存项目的 Excel 公式组成(例如,您指定扬声器,然后是 autospec 列计算您需要的电缆并自动将它们添加到规范中。

示例公式

10m 麦克风电缆可能有如下公式:

=IF([loudspeakers]>0,[loudspeakers]*2,0)+([mixing desk]*4)

我们现在正转向使用 C# 前端的适当数据库。

问题

我想要的是能够将每个库存项目的autospec 公式存储在一个表中,当用户在前端指定一个项目时,程序应该找到相关的公式,执行它,并根据需要更改规范数量。

底线:我需要执行字符串中包含的代码。

我是不是用错了方法?有没有更好的办法?

最佳答案

我问过一次类似的问题:How can I evaluate a C# expression dynamically?

您可能会用它来评估这些表达式。这并不是一件真正安全的事情,除非你能保证没有人会向你的数据库添加垃圾(读作:恶意代码)。

如果您可以将公式分解为“系列”,这样公式列中的每个条目都是一小组 (5-10) 具有不同参数的公式的成员,您可以尝试这样的事情:

[ItemTable]<-[ItemFormulaParameters(param1, param2, param3)]->[FormulaTable(name)]

还有一个工厂方法,用于按名称实例化公式对象。每个这样的公式对象都有一个“calculate(param1, param2, param3)”属性...

关于c# - 间接代码执行/C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4805627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com