私は自分のコードでこれをかなりやっているようです:
public class ActionsModule : Module
{
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
builder.Register(c => LogManager.GetCurrentClassLogger()).As<ILog>().InstancePerDependency();
// Autofac doesn't seem to be able to inject things without explicit binding
builder.RegisterType<ComboActions>().As<ComboActions>().InstancePerHttpRequest();
builder.RegisterType<AppActions>().As<AppActions>().InstancePerHttpRequest();
}
}
}
「アクション」クラスは、コントローラーに注入する必要があるクラスであり、他のさまざまなサブ依存関係があります。
少しゴミのようです。クラスに既に満たされた依存関係を持つコンストラクターがあり、インスタンスを自動的に作成していることを autofac が解決できないのはなぜですか?
つまり、クラス A がクラス B を注入する必要があり、クラス B が C、D、E などを必要とする場合、実行時にクラスを作成できるかどうかを確認するために、依存チェーン全体を調べたくないと思います。...しかし、クラス A が明示的にバインドされている C と D に直接依存している場合、それは確かに些細なケースですか?
何か不足していますか?これに関するドキュメントが表示されないようです...