我要求对我们的功能使用codeeffect规则编辑器。我们有动态动作可在规则编辑器中呈现,用户可以从中进行选择。
为此,我使用FlexSource类型创建了规则编辑器。我尝试通过在规则编辑器中为每个动作添加FlexMethodInfo并为每个动作配置ActionAttributes来配置动作。例如操作是“ SetAmount”,“ SetPercentage”和“ SetQuantity”。
它成功渲染了编辑器,并提供了以上三个选项供您选择。但是,无论我选择哪个选项,都只会选择“ SetAmount”并在规则编辑器中显示它。
FlexSource的思想是继承System.Type,以便编辑器可以继续使用反射来枚举方法,属性,字段等。>
为此,必须实现最少数量的类和方法。 Flex演示显示了那些。
但是当前版本缺少FlexMethodInfo.ToString()的替代。
请在您的FlexMethodInfo类中添加以下内容。调整返回值以反映您的实际方法及其签名。编辑器使用ToString()来构建哈希和match方法。它遵循与MethodInfo.ToString()相同的逻辑。
public override string ToString() { switch (methodName) { case "Concatenate": return "System.String Concatenate(System.String, System.String)"; case "Register": return "Register()"; case "Confirm": return "Confirm(System.String)"; default: return base.ToString(); } }
请确保获得用于编辑器和引擎的最新NuGet软件包。我相信他们已经发布了解决某些用例的更新。