1

これだけでうまくいくのではないですか?

インターフェース

public interface IConfig : ISmtpConfig, IEventConfig

バインディング

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

使用法

public SmtpClient(ISmtpConfig config)

ISmtpConfig のバインディングが見つからないという苦情

4

2 に答える 2

1

アンダースからの答えは正しいです。ここでのこの回答は、スティーブンとアンダースからのコメントをフォローアップしています。規則拡張を使用する場合は、がありBindAllInterfaces()ます。これにより、クラスのすべてのインターフェースが自動的にバインドされます。次に例を示します。

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

「コンクリート」をグーグルで検索すると、グーグルはSOにリンクしないため、この質問をここに残しておきます。あなたがする必要があります

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

私にとってこれは冗長な情報ですが、動的に行うのは難しいかもしれません

于 2013-01-04T14:52:14.080 に答える