似乎CodeEffect库 4.3.2.6 在 UI 上编辑规则XML以及从 stroage 转换回来以在 UI 上显示以进行编辑时存在问题.
是故意避免在 UI 上编辑长规则还是只是一个错误,以便有人知道解决方法?为了避免我的代码产生任何副作用,我从 codeeffects 站点Code Effects Demo Projects下载并使用了业务规则代码示例,并在 VS2015 中打开它。
在“Patient.cs”文件中添加以下代码
public class Patient
{
...
// In Rule Method that accepts only one string parameter
[Method("[NumberOfSegments]")]
public int RuleMethod01(
// explicitly specify maximum string allowed
[Parameter(ValueInputType.User,Max = 10000)]
string val)
{
return val.Split(',').Length;
}
}
在 UI(使用 Ajax 控制器)上,我尝试使用传入的长字符串参数创建规则(在实际项目中,我需要这么长的字符串,因为它包含 In Rule 方法的唯一参数以用于计算,并且不能依赖 CodeEffects 的数据源方法可以提供)
Check if [NumberOfSegments] ("1111,2222,33333,4444,55555,6666,777,8888,999,0000,1111,222,333,44444,1231231,123123123,123123123,123123123,123123123,123123123,123123123,123123123,123123123,123132123,123123123,123123123,123123123,123123123,12123123,123123123,123123123,123123123,1231231233") greater than 12
但即使我在属性参数UI 中明确指定参数的最大字符串长度为10000 ,也不允许我输入长度超过256个字符的字符串。CodeEffects 站点 Business-Rules-Data-Types上的文档没有提到任何内置限制,并且限制字符串参数长度的唯一方法是使用 Parameter Attribute 及其Max属性。
有没有人遇到过这种“综合”限制的问题,并且可以指出我的文档或任何解决方法?提前感谢您提供任何有意义的建议
PS:只是小更新 - 当我手动编辑规则 XML 文件并提供更长的字符串作为参数(例如大约 500 个字符)时,我无法将它从 XML 加载回 UI,RuleEditor::Rule::InvalidElements 集合包含一个元素提示属性值“v122”不知道它是否有用,但可能是 CodeEffects 作者可以了解更多关于此类提示以及 v122 的含义。