如何将简单类型数组传递给In-Rule方法

时间:2017-01-11 15:04:57

标签: c# codeeffects

我有In Rule方法,应接受一组简单类型,例如字符串类型数组或整数数组(int16)。

我尝试创建以下方法

/* Method with string array*/
[Method(DisplayName = "[M1]")]
    public int Method1([Parameter(ValueInputType.All)] 
                        string[] valStrings )
    {
        return valStrings.Length; // any calculation goes here
    }
}

/* Method with PARAMS string array*/
[Method(DisplayName = "[M2]")]
    public int Method2([Parameter(ValueInputType.All)] 
                       params string[] valStrings )
    {
        return valStrings.Length; // any calculation goes here
    }
}

/* Method with INT ARRAY referencing on external data source*/
[Method(DisplayName = "[M2]")]
    public int Method2([Parameter(ValueInputType.All,
                        DataSourceName="myDataList" )] 
                       params int[] valInt )
    {
        return valInt; // any calculation goes here
    }
}

似乎代码效果库 4.3.2.6 不支持将用户输入的参数传递给In-Rule方法,并且仅使用简单的参数类型限制In-Rule方法,例如 Int 但不是 int [] 。似乎我无法使用In Rule方法连接DataSource以将多个项目从数据源传递到in-rule方法。只有USER应输入简单类型或选择多个数据源项的主要思想是什么? 我无法限制用户从返回集合的源对象传递源对象字段。

有任何建议或解决方法吗?

1 个答案:

答案 0 :(得分:0)

CodeEffects支持将IEnumerable类型的字段作为params的in-rule方法。规则方法也可以返回IEnumerable集合,包括数组。但是,由于.NET反射中的某些限制,它不能将数组作为参数。代码效果通常也不支持任何类型的数组的用户输入,因为这将是开发人员和最终用户的UI噩梦。有关详情,请访问herehere

您可以使用动态菜单数据源将数据库中的数据用作值或参数。可以找到详细信息here