Cómo se realizan los enlaces con los decoradores con Ninject?

Basado en esta pregunta: ¿Debería este tipo de servicio inyectarse en una clase base? (versus clases estáticas).

¿Cómo se haría el enlace con decoradores usando Ninject? o cualquier 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();
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta