Как передать массив простых типов в метод In-Rule
У меня есть метод 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
}
}
Кажется, что библиотека codeeffect 4.3.2.6 не поддерживает передачу введенных пользователем параметров в метод In-Rule и ограничивает метод In-Rule только простым типом параметра, например Int, но не int []. Кажется, я не могу соединить DataSource с методом In Rule, чтобы передать более одного элемента из источника данных в метод in-rule. Основная идея, что только USER должен вводить либо простой тип (ы), либо выбирать более одного элемента источника данных? Я не могу запретить пользователю передавать поле исходного объекта из исходного объекта, который возвращает коллекцию.
Есть предложения или обходные пути?
1 ответ
CodeEffects поддерживает методы в правилах, которые принимают поля типов IEnumerable в качестве параметров. Методы in-rule также могут возвращать коллекции IEnumerable, включая массивы. Однако он не может принимать массивы в качестве параметров из-за определенных ограничений в отражении.NET. Code Effects также не поддерживает пользовательский ввод каких-либо массивов в целом просто потому, что это будет кошмаром пользовательского интерфейса для разработчиков и конечных пользователей. Более подробная информация доступна здесь и здесь
Вы можете использовать источники данных динамического меню, чтобы получать данные из вашей базы данных для использования в качестве значений или параметров. Подробности можно найти здесь