En Autofac puede utilizar la interfaz de IComponentRegistration
a suscribir en varios eventos de toda la vida:
- OnActivating
- OnActivated
- onRelease
Puede obtener la instancia IComponentRegistration
mediante la creación de un Module
y anula el método AttachToComponentRegistration
:
public class EventModule : Module
{
protected override void AttachToComponentRegistration(
IComponentRegistry componentRegistry,
IComponentRegistration registration)
{
registration.Activated += OnActivated;
}
private void OnActivated(object sender, ActivatedEventArgs<object> e)
{
e.Instance.GetType().GetMethod("Initialize").Invoke(e.Instance, null);
}
}
Ahora sólo tiene que registrar su módulo en su constructor de contenedores:
var builder = new ContainerBuilder();
builder.RegisterModule<EventModule>();
y el método OnActivated
se llamará después de cada activación de componentes no mater en la que el módulo que se haya registrado el componente.