Выражение C # с использованием выражений And Or и Not вместе на основе AST
Я хочу использовать выражение Linq для некоторых динамических функций. Мне нужны выражения И, Или, и Не .. Я не могмного получается ..
Мы хотим проверить, была ли включена определенная функция в нашей системе, и на основании этого мы решим, показывать пункт меню или нет. мы сформировали правила в формате XML, я знаю, чтобы преобразовать правило в AST, но я неНе знаю, чтобы сопоставить с выражением Linq.
Правила таковы: Feature1Enabled и Feature2Eenabled или (Feature3Disabled, а не Feature5Enabled)
Вот "Feature1Enabled ","Feature2Eenabled» и т. д. это название функции. Мы передадим эту строку в функцию IsFeatureEnabled, чтобы проверить, была ли функция включена или нет.
public delegate bool IsEnabledDelegate(string name, string value);
public static bool IsFeatureEnabled(string name, string value)
{
if (name == "MV")
return true;
if (name == "GAS" && value == "G")
return true;
//More conditions goes here
return false;
}
static void Main(string[] args)
{
Expression featureEnabledExpTree =
(name, value) => IsFeatureEnabled(name, value);
//I want the equal of the following statement in C# Linq Expression
bool result = IsFeatureEnabled("MV", "") && IsFeatureEnabled("GAS", "G") || !IsFEatureEnabled("GAS", "F")
}
Я хочу эквивалентный результат bool = IsFeatureEnabled ("MV "," ") && IsFeatureEnabled (»ГАЗ "," Г ") || ! IsFEatureEnabled (»ГАЗ "," Ф ")
в формате выражения Linq .. Однако я могу преобразовать их в динамически на основе моих обозначений AST ..
Большое спасибо .. Если вам нужно больше информации, сообщите мне в комментариях ..