Dire que j'ai cette interface:La meilleure façon de maintenir les références à une collection de types génériques
public interface IRepository<T> where T : Entity
{
T Get(string query);
void Save(T entity);
}
et moi avons deux classes concrètes comme (où l'utilisateur et le projet, bien sûr, hériteront de l'entité):
public class UserRepository : IRepository<User> { ... }
public class ProjectRepository : IProjectRepository<Project> { ... }
Quelle est la meilleure façon de conserver une référence à tous ceux d'une même collection? Manifestement, vous ne pouvez pas avoir quelque chose comme:
var repos = new IRepository<Entity>[]
{
new UserRepository(),
new ProjectRepository()
}
Alors doit j'ai une interface non-générique à partir de laquelle l'interface générique hérite?
public interface IRepository
{
Entity Get(string query);
void Save(Entity entity);
}
public interface IRepository<T> : IRepository { ... }
Merci pour toute aide, des idées, des suggestions.
Oui, je traitais tout cela dans une collection d'objets et oui, je voulais un moyen plus sûr de type. – xanadont
Aussi, heureux je l'ai demandé, je vais devoir lire sur les implications de ISomeInterface: http://blog.tlk.com/dot-net/2009/c-sharp-4-covariance-and-contravariance Merci pour le allusion. –
xanadont