Comencé a usar Autofac y quiero escanear algunas DLL y obtener Autofac para registrar algunas de las clases dentro de ellas.Conjuntos de escaneo Autofac para cierto tipo de clase
Las clases que me interesan todas heredan de una clase PluginBase pero el código siguiente no parece estar registrándolas. ¿Alguien puede ayudar?
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assemblies)
.Where(t => t.BaseType == typeof(PluginBase))
.AsImplementedInterfaces()
.AsSelf();
var container = builder.Build();
var pluginClasses = container.Resolve<IEnumerable<PluginBase>>();
//pluginClasses is empty!!!!
¡Eso funciona! ¿Podría agregar AsImplementedInterfaces para las clases más nuevas? que implementan las interfaces? – Jon
Creo que estas dos llamadas deberían funcionar juntas. Luego el tipo se registra con i ts base type y todas las interfaces que implementa. – Jehof
Vaya, solo vuelva a leer lo que escribí y no tiene sentido. Si tengo una clase que hereda de PluginBase y tiene un argumento constructor de una interfaz, esto no funcionará incluso con AsImplementedInterfaces. ¿Hago un nuevo registro de generador o puedo modificar el código actual? – Jon