c# - 自定义规则模式实现

标签 c# linq pattern-matching predicate rules

我有一个业务规则列表,我需要将其应用于 json 数据,然后通过 http post 将其输出回来。

规则规定了如何根据字符串的类型和值来格式化字符串。 例如:

  • 名字,首字母大写。
  • 中间名:如果是一个字母,则附加“.”最后

具有挑战性的部分是我希望能够在不更改代码的情况下添加/删除业务规则。所以我考虑将规则及其定义存储在 sql 表中。

表格如下所示:

| RuleName | Action | |---------------------|------------------ | | padLeft | PadLeft<x> | |---------------------|------------------ |

我不知道如何将规则转化为他们应该采取的行动。我遇到了this这非常接近我正在寻找的东西。也许我把这个复杂化了,所以我愿意接受不同的建议

最佳答案

如果您想在不重建代码的情况下向代码添加新行为,则无需重新发明轮子,请使用插件。

您必须提供一个您的插件类必须实现的接口(interface),如果您不想重新启动您的应用程序,则可以使用反射在运行时加载这些 dll。

如果需要,我可以为您提供更多详细信息,但互联网上充满了有关开发 C# 插件的信息。使用数据库而不是数据来存储行为对我来说听起来像是一种代码味道。

关于c# - 自定义规则模式实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50378596/

相关文章:

c# - 如何在 C# 中使用模数、D、指数创建私有(private) RSA key ?

c# - 一个工作单元内多个消息的相同 Rebus 处理程序实例

c# - 如何使用 linq 仅对一列进行分组

erlang - 为什么 OCaml 的模式匹配比 Erlang 的弱?

regex - 正则表达式验证采用类似日期的格式

javascript - 使用部分值/正则表达式进行切换?

c# - DataSet - 在填充外连接查询时确保主键数据

c# - 如何在 C# 中开发基于动态插件的功能

c# - List.Cast<> 错误 "is a method which is not valid in the given context"

.net - 如何在 Linq To SQL 中跳过插入/更新时的默认值列?