这不应该工作吗?
界面
public interface IConfig : ISmtpConfig, IEventConfig
捆绑
kernel.Bind<IConfig>().To<Config>();
用法
public SmtpClient(ISmtpConfig config)
它抱怨它找不到任何 ISmtpConfig 绑定
这不应该工作吗?
界面
public interface IConfig : ISmtpConfig, IEventConfig
捆绑
kernel.Bind<IConfig>().To<Config>();
用法
public SmtpClient(ISmtpConfig config)
它抱怨它找不到任何 ISmtpConfig 绑定
我会把这个问题留在这里,因为如果你用谷歌搜索“混凝土”,谷歌就不会链接到 SO。你需要做
kernel.Bind<IConfig, IEventConfig, ISmtpConfig>()
对我来说,这是多余的信息,但可能很难动态地做到这一点
安德斯的答案是正确的。这里的答案是对 steven 和 anders 的评论。如果您使用约定扩展名,则有一个BindAllInterfaces()
. 这会自动绑定类的所有接口。这是一个例子:
kernel.Bind( x => x
.FromThisAssembly() // 1
.SelectAllClasses().InNamespaceOf<IConfig>() // 2
.BindAllInterfaces() // 3
.Configure(b => b.InSingletonScope())); // 4