gpt4 book ai didi

c# - 根据数据库中的数据动态调用 C# 方法

转载 作者:太空狗 更新时间:2023-10-29 23:18:26 26 4
gpt4 key购买 nike

我的老板让我研究一个计算引擎。实际上,用户将拥有一个可以对其执行计算的数据表。他们还将能够根据我们强制执行的某些限制构建自己的计算(构建的计算随后将存储在数据库中)

是否可以根据数据库中存储的内容调用 C# 中的特定方法?所以如果数据库说,计算应该执行标准偏差。当我们从数据库中获取该信息时,是否可以调用我们将在 C# 中拥有的标准偏差方法?

我希望这是清楚的。

最佳答案

考虑到将对您的数据执行的少量/已知操作,我会选择根据从数据库中检索到的数据手动编写这些操作。对于可扩展性/可维护性,最好为此创建适当的设计,而不是使用简单的 switch 语句。我猜 Strategy pattern将满足您的需求。

正如其他人所说,您可以使用reflection ,调用数据库中指定的方法。这种方法的问题是数据库中的数据与方法签名紧密相关。这比第一种方法更难维护,但确实允许通过最少的代码调整实现出色的可扩展性。另一个缺点是使用 MethodInfo.Invoke() 相当慢。

如果您选择反射,但发现 Invoke() 方法太慢,我可以推荐 this article by Jon Skeet其中解释了如何将 MethodInfo 转换为委托(delegate)实例。这大大提高了速度。我写了a generic implementation using expression trees最近为此。

总而言之,选项 1 似乎仍然最适合您的目的。

关于c# - 根据数据库中的数据动态调用 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194031/

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