Runtime-Erstellung von generischen Func - <T>
Brauche ich, um die Methode zu implementieren:
object GetFactory(Type type);
Diese Methode zurückgeben muss, eine Func - <T> wo typeparam 'T' ist der 'Typ'.
So, mein problem ist, dass ich nicht weiß, wie man ein Func<?> zur Laufzeit über Reflexion. Activator.CreateInstance funktioniert nicht, da gibt es keine Konstruktoren, die auf die Delegierten.
Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie
Delegate.CreateDelegate
, D. H. von einemMethodInfo
; unten, ich habe hart codiert, aber würden Sie verwenden eine gewisse Logik, oderExpression
, um die tatsächliche Methode zur Erstellung von:Für nicht-statische Methoden, es ist eine überlastung der
Delegate.CreateDelegate
akzeptiert, dass die Ziel-Instanz.Ich denke, der übliche Ansatz wäre, um die "dumme" version der Sache, die Sie vortäuschen zu runtme, und geben Sie dann einen Helfer, der Erweiterung Methode um die Art-sichere version oben drauf.
könnten Sie Ausdruck erstellen Objekte anstelle von einem func, und compile() der Ausdruck, mit dem eine Func-Delegat.