1

这不应该工作吗?

界面

public interface IConfig : ISmtpConfig, IEventConfig

捆绑

kernel.Bind<IConfig>().To<Config>();

用法

public SmtpClient(ISmtpConfig config)

它抱怨它找不到任何 ISmtpConfig 绑定

4

2 回答 2

1

我会把这个问题留在这里,因为如果你用谷歌搜索“混凝土”,谷歌就不会链接到 SO。你需要做

kernel.Bind<IConfig, IEventConfig, ISmtpConfig>()

对我来说,这是多余的信息,但可能很难动态地做到这一点

于 2013-01-04T14:52:14.080 回答
1

安德斯的答案是正确的。这里的答案是对 steven 和 anders 的评论。如果您使用约定扩展名,则有一个BindAllInterfaces(). 这会自动绑定类的所有接口。这是一个例子:

kernel.Bind( x => x
    .FromThisAssembly() // 1
    .SelectAllClasses().InNamespaceOf<IConfig>() // 2
    .BindAllInterfaces() // 3
    .Configure(b => b.InSingletonScope())); // 4
于 2013-01-05T08:12:19.397 回答