Gegeben:Resolving Factory-Methoden für mehrere Implementierungen mit Autofac
public class InfoA { /* impl */ }
public class InfoB { /* impl */ }
public class ViewModelBase {}
public class ViewModelA : ViewModelBase
{
public ViewModelA(InfoA info, Dep1 dep1, Dep2, dep2) { }
}
public class ViewModelB : ViewModelBase
{
public ViewModelB(InfoB info, Dep3 dep3, Dep4 dep4) { }
}
Wie kann ich Typen meinen Container registrieren, so dass ich
class ViewModelRepository
{
public ViewModelRepository(
Func<InfoA, ViewModelA> factA,
Func<InfoA, ViewModelB> factB) { }
}
oder abwechselnd Func<InfoA, ViewModelBase>
und Func<InfoB, ViewModelBase>
Zur Zeit habe ich
builder.RegisterType<ViewModelA>().As<ViewModelBase>()
builder.RegisterType<ViewModelB>().As<ViewModelBase>();
, die nur für den Typ zuletzt registriert scheint zu funktionieren.