Je veux créer la classe Foo comme suit. L'expression d'entrée du constructeur de Foo permet d'obtenir un membre de type T pour effectuer un certain travail.
class Foo<T>
{
public Foo<TResult>(Expression<Func<T, TResult>> selector)
{
List<string> memberNames = typeof(TR).GetProperties().Select(p => p.Name).ToList();
....//some work on memberNames
}
}
et Créer une instance de Foo par le code :
Foo<ClassA> foo = new Foo<ClassA>(u=>new{u.Property1, u.Property2});
mais cela n'a pas fonctionné. Le constructeur ne peut pas avoir le type Generc TResult. Comment faire ?
Après avoir lutté contre l'expression, j'ai trouvé la réponse et je l'ai inscrite dans les réponses.