.net 使用Decorator模式的Ninject依赖项注入

.net 使用Decorator模式的Ninject依赖项注入,.net,inversion-of-control,ninject,decorator,.net,Inversion Of Control,Ninject,Decorator,比如说,我有这样的类层次结构: public interface IRepository { } public class SomeSimpleRepository : IRepository {} 现在我想用附加功能“装饰”一些简单的存储 public class MoreAdvancedRespository : IRepository { private readonly IRepository _originalRepository; public MoreAd

比如说,我有这样的类层次结构:

public interface IRepository { }

public class SomeSimpleRepository : IRepository {}
现在我想用附加功能“装饰”一些简单的存储

public class MoreAdvancedRespository : IRepository 
{ 
    private readonly IRepository _originalRepository;

    public MoreAdvancedRespository(IRepository original) 
    { }
}
过了一会儿又来了一个

public class TrickyRepository : IRepository
{
    private readonly IRepository _originalRepository;

    public TrickyRepository (IRepository original) 
    { }
}
现在,我需要完成绑定。在应用程序中,我需要TrickyRepository的实例,用MoreAdvancedRespository初始化。所以,我需要写一些东西,比如:

Bind<IRepository>().To<TrickyRepository>.With ??
Bind().To.With??
在这里我感到困惑,我需要说,采取更高级的resposition,但用一些简单的resposition初始化它。这是一种依赖链,必须针对一个接口进行解析


有人对此有建议吗?

在输入时使用

Bind<IRepository>().To<MoreAdvancedRespository>
                   .WhenInjectedInto<TrickyRepository>();
Bind<IRepository>().To<SomeSimpleRepository>
                   .WhenInjectedInto<MoreAdvancedRespository>();
Bind().To
.当输入到()时;
绑定()到
.当输入到()时;
有关更多信息,请参阅。

的可能副本