Betrachten Sie den folgenden Satz von Klassen:Ist es möglich, alle Abhängigkeiten und nur Abhängigkeiten einer bestimmten Klasse bei Castle Windsor zu registrieren?
public interface IService { }
public interface IDep1 { }
public interface IDep2 { }
public interface IDep3 { }
public class Dep1 : IDep1 { }
public class Dep2 : IDep2 { }
public class Dep3 : IDep3 { } // this one is not used
public class Service1 : IService
{
public Service1(IDep1 dep1) { }
}
public class Service2 : IService
{
public Service2(IDep1 dep1, IDep2 dep2) { }
}
ich folgende Schloss Windsor Installateur alle Klassen registrieren verwende, die von IService erben:
container.Register(Classes.FromThisAssembly()
.BasedOn(typeof(IService))
.WithServiceSelf()
.WithServiceBase()
.LifestyleTransient());
Wie kann ich Wille, schreiben einen Installer registriere alle Klassen, die Abhängigkeiten von bereits registrierten Klassen sind, aber nicht mehr. Mit anderen Worten: Wie kann ich schreibe ein allgemeines Installationsprogramm, die IDep1 und IDep2, aber nicht IDep3 (weil IDep3 wird von keinen IService
die Registrierung tun Warum würden Sie halten IDep3 in Ihrem Code-Basis wenn es nicht benutzt wird? – Paolo
Warum ist es wichtig, ob eine Klasse registriert, aber nicht verwendet wird? – stuartd
Weil Dep3 anderswo benutzt wird und ich nicht möchte, dass es im Container ist. – Eiver