Tôi muốn sử dụng biểu thức LINQ cho một số tính năng động. Tôi cần Và, Hoặc và Không biểu thức .. Tôi không thể nhận được nhiều ..C# Biểu thức sử dụng và biểu thức Không và Không cùng nhau dựa trên AST
Chúng tôi muốn kiểm tra xem tính năng nào đó đã được bật hay không trong hệ thống của chúng tôi và dựa trên đó chúng tôi sẽ quyết định có hiển thị mục menu hay không hay không. chúng tôi đã hình thành các quy tắc ở định dạng XML, tôi biết để chuyển đổi quy tắc sang AST nhưng tôi không biết ánh xạ tới biểu thức LINQ.
Rules Are như: Feature1Enabled Và Feature2Eenabled hoặc (Feature3Disabled Và Không Feature5Enabled)
Here "Feature1Enabled", "Feature2Eenabled" vv là tên của tính năng này. Chúng tôi sẽ chuyển chuỗi này tới hàm IsFeatureEnabled để kiểm tra xem một tính năng đã được bật hay chưa.
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")
}
Tôi muốn tương đương với kết quả bool = IsFeatureEnabled ("MV", "") & & IsFeatureEnabled ("GAS", "G") || ! IsFEatureEnabled ("GAS", "F")
trong LINQ Format biểu .. Tuy nhiên tôi có thể chuyển đổi chúng để tự động dựa trên ký hiệu AST của tôi ..
Cảm ơn bạn rất nhiều .. Nếu bạn cần thêm thông tin , hãy cho tôi biết trong các nhận xét ..
(ví dụ sửa đổi để hiển thị xây dựng featureEnabledExpTree trong thời gian chạy dựa trên dữ liệu) –