Ich habe eine Service-Schnittstelle, ICustomerService, und von zwei Arten implementiert:Schloss Windsor - Registrierung und Resolving Cached und uncache Implementierung von derselben Schnittstelle
public class CustomerService : ICustomerService
{
// stuff
}
public class CachedCustomerService : ICustomerService
{
public CachedCustomerService(CustomerService service) { }
}
Der Cache-Dienst dann nur Caches und Delegierten die normalen Bedienung.
Zur Registrierung habe ich ICustomerService auf CachedCustomerService auflösen und dann CustomerService ist nur für seinen eigenen Typ registriert.
Das funktioniert gut.
Ich frage mich, ob ich CachedCustomerService eine Schnittstelle anstelle des konkreten CustomerService benötigen kann. Der Grund dafür ist, dass wir möglicherweise zwei Arten von CustomerService haben, und ich möchte (wenn möglich) eine zwischengespeicherte Version vermeiden, die für jede einzelne Version spezifisch ist.
So der Konstruktor von CachedCustomerService würde ändern:
public class CachedCustomerService : ICustomerService
{
// notice the ICustomerService
public CachedCustomerService(ICustomerService service) { }
}
ich die totale Kontrolle über die Registrierung, aber die Auflösung wird durch die Schalen von asp.net Mvc getan.
Danke!