Это, вероятно, глупый вопрос, но здесь идет. Я хотел бы иметь возможность динамически создавать предикат из строки, анализируемой из столбца VARCHAR базы данных, или любой строки, в этом отношении. Например, скажем, столбец в базе данных содержал следующую строку:
return e.SomeStringProperty.Contains("foo");
Эти кодовые / строковые значения будут храниться в базе данных, зная, каковы возможные свойства универсального "e", и зная, что они должны возвращать логическое значение. Затем в волшебном, чудесном, фантастическом мире код мог выполняться, не зная, что такое предикат, например:
string predicateCode = GetCodeFromDatabase();
var allItems = new List<SomeObject>{....};
var filteredItems = allItems.FindAll(delegate(SomeObject e) { predicateCode });
или лямбдаизированный:
var filteredItems = allItems.FindAll(e => [predicateCode]);
Я знаю, что, вероятно, никогда не будет так просто, но есть ли способ, возможно, с помощью Reflection.Emit, динамически создавать код делегата из текста и передавать его FindAll (или любому другому анонимному / расширению) метод?