2016-08-10 32 views
2

我知道,你可以添加注册一个LifetimeScope是这样创建的:是否可以在Autofac LifetimeScope创建后添加注册?

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. 
} 

是否有可能的LifetimeScope之后添加注册创建? (添加注册的using块例如内)

+0

你能描述你想要做什么? –

回答

0

可以访问ILifetimeScopeComponentRegistry属性,这个对象可以注册新IComponentRegistration,你可以使用RegistrationBuilder创建静态方法:

using(var scope = container.BeginLifetimeScope()) 
{ 
    var registration = RegistrationBuilder.ForType<ServiceA>() 
              .As<IService>() 
              .CreateRegistration(); 
    scope.ComponentRegistry.Register(registration); 

    scope.Resolve<IService>(); 
} 
相关问题