これだけでうまくいくのではないですか?
インターフェース
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 のバインディングが見つからないという苦情
アンダースからの答えは正しいです。ここでのこの回答は、スティーブンとアンダースからのコメントをフォローアップしています。規則拡張を使用する場合は、がありBindAllInterfaces()
ます。これにより、クラスのすべてのインターフェースが自動的にバインドされます。次に例を示します。
kernel.Bind( x => x
.FromThisAssembly() // 1
.SelectAllClasses().InNamespaceOf<IConfig>() // 2
.BindAllInterfaces() // 3
.Configure(b => b.InSingletonScope())); // 4
「コンクリート」をグーグルで検索すると、グーグルはSOにリンクしないため、この質問をここに残しておきます。あなたがする必要があります
kernel.Bind<IConfig, IEventConfig, ISmtpConfig>()
私にとってこれは冗長な情報ですが、動的に行うのは難しいかもしれません