构建容器后添加服务


Answers:



19

由于不推荐使用ContainerBuilder.Update,因此新建议是使用子生存期范围。

将注册添加到生命周期范围

Autofac允许您在创建生命周期范围时“动态”添加注册。当您需要进行某种“点焊”有限的注册替代,或者您通常不想在全球范围内进行注册时,这通常可以为您提供帮助。您可以通过将lambda传递给BeginLifetimeScope()来实现,该方法接受ContainerBuilder并添加注册。

using(var scope = container.BeginLifetimeScope(
  builder =>
  {
    builder.RegisterType<Override>().As<IService>();
    builder.RegisterModule<MyModule>();
  }))
{
  // The additional registrations will be available
  // only in this lifetime scope.
}

使用终身范围


需要注意的是在using块中的注释。“附加注册将仅在此生命周期范围内可用。”
Ady
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.