Как связать универсальные типы с ограничениями - PullRequest
1 голос
/ 25 января 2012

Я использую Ninject DI контейнер.И у меня есть два

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

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

Затем я пытаюсь связать их в отдельном модуле

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

, где this.Bind<IRepository<>>().To<Repository<>>(); не распознается как утверждение.

Как сделать привязку?

1 Ответ

5 голосов
/ 25 января 2012

Подхватил этот кусок из здесь .Похоже, у них это сработало:

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