自定义规则模式实现

时间:2018-05-16 19:27:15

标签: c# linq pattern-matching predicate rules

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

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

  • 名字,首字母大写。
  • 中间名:如果是一个字母,请追加'。'最后

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

表格如下:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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