CodeEffect库4.3.2.6似乎存在规则XML编辑ON UI和从stroage转换回来在UI上进行编辑的问题,当规则XML具有在规则方法中调用 string 参数,其字符串值以超过255个字符传递。
是否故意避免在UI上编辑长规则或只是一个bug,以便有人知道它的解决方法? 为了避免我的代码产生任何副作用,我下载并使用了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没有提到任何内置限制,只有限制字符串参数长度的方法是使用参数属性及其 Max 属性。
有没有人遇到过这种“合成”限制的问题,可以指出我的文档或任何解决方法吗? 提前感谢你提出任何有意义的建议
PS:只是小更新 - 当我手动编辑Rule XML文件并提供更长的字符串作为参数(例如大约500个字符)时,我无法将它从XML加载回UI,包含RuleEditor :: Rule :: InvalidElements集合一个元素提示属性值“v122”不知道它是否有用,但可能是CodeEffects作者可以了解更多关于此类提示以及v122的含义。
答案 0 :(得分:0)
Code Effects中不支持超过255个字符的字符串(属性值和方法参数)。 v122是您收到的错误号。其原始消息是“此字符串元素的值的长度超过了允许的最大限制”。