J'ai une situation où je mappe des classes qui ont une hiérarchie d'héritage. J'ai une liste d'articles dont chaque classe sait qu'elle a besoin. Par exemple:Quelle est une façon élégante d'agréger les propriétés des sous-classes en C#?
public class PersonMapper
{
private string[] attributes = new[] {"firstName", "lastName"};
}
public class UserMapper : PersonMapper
{
private string[] attributes = new[] {"username"};
}
public class EmployeeMapper : PersonMapper
{
private string[] attributes = new[] {"employeeId"};
}
Je voudrais faire un appel de méthode qui retourne l'ensemble de tous les super-classes comme ceci:
EmployeeMapper mapper = new EmployeeMapper();
string[] attributes = mapper.GetAttributes();
Assert.That(attributes, Has.Member("firstname"));
Je peux penser à des solutions, mais ils semblent trop compliqué . J'ai l'impression qu'il y a une solution élégante à ce problème qui me manque. Quelqu'un peut-il aider?
Merci d'avance!
acceptés dans les 4 minutes. Grands garçons de discussion, merci! –
D'où vient l'Union()? Est-il disponible parce que System.Array implémente IEnumerable? –
Oui, c'est l'une des méthodes d'extension Linq sur IEnumerable. –
BFree