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 Nin
You have to use conditional bindings e.g
Bind<IRepository>().To<Repository>().WhenInjectedInto<CachedRopsitory>(); Bind<IRepository>().To<CachedRepository>().WhenInjectedInto<CachedLoggedRepository>(); Bind<IRepository>().To<CachedLoggedRepository>();