Wie rufe ich eine Erweiterungsmethode mit Reflection auf?

Ich weiß es zu schätzen, dass ähnliche Fragen bereits gestellt wurden, aber ich habe Mühe, den Linq aufzurufenWoher Methode im folgenden Code. Ich möchte Reflection verwenden, um diese Methode dynamisch aufzurufen und auch den in der verwendeten Delegierten (oder Lambda) dynamisch zu erstellenWoher Klausel. Dies ist ein kurzes Codebeispiel, das, sobald es funktioniert, dazu beiträgt, einen Teil eines interpretierten DSL zu bilden, das ich aufbaue. Prost.

    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;
    }

Antworten auf die Frage(5)

Ihre Antwort auf die Frage