这应该不起作用吗?
接口
public interface IConfig : ISmtpConfig, IEventConfig
结合
kernel.Bind<IConfig>().To<Config>();
用法
public SmtpClient(ISmtpConfig config)
它抱怨它无法找到ISmtpConfig的任何绑定
答案 0 :(得分:1)
我会在这里保留这个问题,因为如果你谷歌'混凝土'谷歌不会链接到SO。 你需要做
kernel.Bind<IConfig, IEventConfig, ISmtpConfig>()
对我而言,这是多余的信息,但也许很难动态地做到这一点
答案 1 :(得分:1)
安德斯的回答是正确的。这个答案跟随史蒂文和安德斯的评论。如果您使用约定扩展,则有BindAllInterfaces()
。这会自动绑定类的所有接口。这是一个例子:
kernel.Bind( x => x
.FromThisAssembly() // 1
.SelectAllClasses().InNamespaceOf<IConfig>() // 2
.BindAllInterfaces() // 3
.Configure(b => b.InSingletonScope())); // 4