2012-01-25 3 views
1

J'utilise le conteneur DI Ninject. Et j'ai les deuxComment lier des types génériques avec des contraintes

public interface IRepository<T> where T : AbstractEntity<T>, IAggregateRoot 
{ 
    // methods signatures 
} 

public class Repository<T> : IRepository<T> where T : AbstractEntity<T>, IAggregateRoot 
{ 
    // implementations 
} 

Je suis en train de les lier dans un module distinct

public class DataAccessModule : Ninject.Modules.NinjectModule 
{ 
    public override void Load() 
    { 
     this.Bind<IRepository<>>().To<Repository<>>(); 
    } 
} 

this.Bind<IRepository<>>().To<Repository<>>(); n'est pas reconnu comme une déclaration.

Comment créer une liaison?

+0

double possible de [ninject avec interface générique] (http://stackoverflow.com/questions/2216127/ninject-with-generic-interface) – nawfal

Répondre

5

Cette pièce est tirée de here. On dirait que ça a marché pour eux:

Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 
Questions connexes