Je dois créer une méthode qui examine dynamiquement le délégué de méthode passé en paramètre. Mais je ne peux pas forcer les arbres d'expression à accepter n'importe quelle méthode indépendamment de leur signature.ExpressionTree en tant que paramètre de méthode pour accepter n'importe quelle méthode
C'est ma méthode (ne compile pas: error CS0030: Cannot convert type 'method' to 'Delegate'
)
public void Examine<T>(Expression<Func<T, Delegate>> expression2)
{
// examine expression tree to get method name (MethodInfo)
}
Je veux l'appeler ainsi:
Examine<Foo>(x => foo1.Test1);
Examine<Bar>(x => bar2.DifferentMethod2);
// etc, with other methods
où:
- classe Foo a méthode :
bool Test1(int num)
- La barre de classe a la méthode: 'chaîne DifferentMethod2 (chaîne a, chaîne b) `
- et bien d'autres
Comment y parvenir?
Remarque:
- JE NE PEUX PAS utiliser Func <> ou action <> car il y aura de nombreuses signatures de méthode possibles qui doivent être acceptées avec les types de paramètres que je ne vais pas avoir une référence à.
Ne l'avez pas testé, mais func ou action avec dynamique? charlatans comme un canard –