J'ai une classe de référentiel de base qui contient toutes les méthodes de référentiel commun (comme générique):A C# Generics question concernant les contrôleurs et Référentiels
public abstract class BaseRepository<T, IdType> : IBaseRepository<T, IdType>
Mes référentiels de cette base, par exemple:
public class UserRepository : BaseRepository<User, int>, IUserRepository
J'ai aussi une classe de contrôleur de base contenant des actions communes, et j'en hérite dans les contrôleurs. Le dépôt est injecté dans ceci par DI. Par exemple.
public class UserController : BaseController<User>
{
private readonly IUserRepository userRepository;
public UserController (IUserRepository userRepository)
{
this.userRepository= userRepository;
}
Ma question est la suivante: Le contrôleur de base doit être en mesure d'accéder aux méthodes du référentiel qui sont définies dans le référentiel de base. Cependant, je passe dans via DI un type de référentiel différent pour chaque contrôleur (même s'ils héritent tous du référentiel de base). Comment le contrôleur de base peut-il accéder d'une manière ou d'une autre au référentiel transmis (quel que soit son type), de sorte qu'il peut accéder aux méthodes de base communes?
Le 'I' sur le cteur censé être sur le terrain? –
@marc Oui, désolé - faute de frappe (ok en code réel) - Je mettrai à jour le poste. – UpTheCreek