Rus*_*ino 9 ninject decorator inversion-of-control
基于这个问题:应该将哪种服务注入基类?(与静态类相比).
如何使用Ninject对装饰器进行绑定?或任何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();
}
Run Code Online (Sandbox Code Playgroud)
Rem*_*oor 15
你必须使用条件绑定,例如
Bind<IRepository>().To<Repository>().WhenInjectedInto<CachedRopsitory>();
Bind<IRepository>().To<CachedRepository>().WhenInjectedInto<CachedLoggedRepository>();
Bind<IRepository>().To<CachedLoggedRepository>();
Run Code Online (Sandbox Code Playgroud)