2016-08-10 3 views
2

Ich weiß, dass Sie Registrierungen ein LifetimeScopewenn es erstellt wird wie folgt hinzufügen:Ist es möglich, Registrierungen zu einem Autofac LifetimeScope hinzuzufügen, nachdem es erstellt wurde?

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

Ist es möglich, fügen Sie Registrierungen nach die LifetimeScope erstellt? (Hinzufügen Registrierungen innerhalb des using Block zum Beispiel)

+0

Sie konnte Beschreibe was du versuchst zu tun? –

Antwort

0

Sie die ComponentRegistry Eigenschaft des ILifetimeScope zugreifen können, mit diesem Objekt können Sie neue IComponentRegistration registrieren, die Sie erstellen können RegistrationBuilder statische Methode:

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

    scope.Resolve<IService>(); 
} 
Verwandte Themen