Выражение C # с использованием выражений And Or и Not вместе на основе AST
Я хочу использовать выражение Linq для некоторых динамических функций. Мне нужны выражения «И» или «Не». Я не могу получить много ..
Мы хотим проверить, была ли включена определенная функция в нашей системе, и на основании этого мы решим, показывать пункт меню или нет. мы сформировали правила в формате XML, я знаю, чтобы преобразовать правило в AST, но я не знаю, чтобы сопоставить его с выражением Linq.
Правила таковы: Feature1Enabled и Feature2Eenabled или (Feature3Disabled, а не Feature5Enabled)
Здесь & quot; Feature1Enabled & quot ;, & quot; Feature2Eenabled & quot; и т. д. это название функции. Мы передадим эту строку в функцию 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<Func<string, string, bool>> 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 result = IsFeatureEnabled ("MV", "") & amp; IsFeatureEnabled («GAS», «G») || ! IsFEatureEnabled ("GAS", "F")
в формате выражения Linq .. Однако я могу преобразовать их в динамически на основе моих обозначений AST ..
Большое спасибо .. Если вам нужно больше информации, сообщите мне в комментариях ..