public class Sub1 : Base<SomeClass>
{
// for sake of getting injection to work, not injecting anything in ctor
public Sub1() {}
....
}
public class Sub2 : Base<SomeOtherClass>
{
// for sake of getting injection to work, not injecting anything in ctor
public Sub2() {}
....
}
public abstract class Base<T>
{
// abstract, so no ctor
....
}
Ich habe Folgendes versucht, aber ich bekomme die Ausnahme unten aufgeführt. Beachten Sie, dass die Ausnahme auf die abstrakte Basisklasse verweist. Was vermisse ich?autofac Registrieren geschlossene Unterklassen von abstrakten öffnen generische
builder.RegisterAssemblyTypes(typeof(Base<>).Assembly)
.Where(t => t.IsSubclassOf(typeof(Base<>))).AsClosedTypesOf(typeof(Base<>)).InstancePerDependency();
Keine Konstrukteure auf Typ 'Base`1 [Someclass]' können mit dem Konstruktor Finder 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' gefunden werden.
Können Sie Ihre Konstruktorimplementierungen zeigen. –
Bearbeitet, um einfache Konstruktoren anzuzeigen. Ich nehme an, ich vermisse etwas in der Registrierung, aber ich weiß nicht was. – Suedeuno