Как вызвать метод расширения с помощью отражения?
Я ценю, что подобные вопросы задавались ранее, но я изо всех сил пытаюсь вызвать Линкгде Метод в следующем коде. Я хочу использовать отражение для динамического вызова этого метода, а также для динамического построения делегата (или лямбда-выражения), используемого вгде пункт. Это пример короткого кода, который после работы поможет сформировать часть интерпретируемого DSL, который я создаю. Приветствия.
public static void CallWhereMethod()
{
List<MyObject> myObjects = new List<MyObject>(){new MyObject{Name="Jon Simpson"}};
System.Delegate NameEquals = BuildEqFuncFor<MyObject>("Name", "Jon Simpson");
object[] atts = new object[1] ;
atts[0] = NameEquals;
var ret = typeof(List<MyObject>).InvokeMember("Where", BindingFlags.InvokeMethod, null, InstanceList,atts);
}
public static Func<T, bool> BuildEqFuncFor<T>(string prop, object val)
{
return t => t.GetType().InvokeMember(prop,BindingFlags.GetProperty,
null,t,null) == val;
}