Based on this question : Should thoses kind of service go injected in a base class ? (versus static classes).
How the binding would be done with decorators using Ninject ? or any DIContainer ?
public class CachedLoggedRepository : IRepository
{
public IRepository repository { get; set; }
void Add();
}
public class CachedRepository : IRepository
{
public IRepository repository { get; set; }
void Add();
}
public class Repository : IRepository
{
void Add();
}
Remo Gloor
You have to use conditional bindings e.g
Bind<IRepository>().To<Repository>().WhenInjectedInto<CachedRopsitory>();
Bind<IRepository>().To<CachedRepository>().WhenInjectedInto<CachedLoggedRepository>();
Bind<IRepository>().To<CachedLoggedRepository>();
来源:https://stackoverflow.com/questions/8447037/how-the-binding-are-done-with-decorators-using-ninject