Avendo letto e cercato fino al punto di esaurirsi, ho la sensazione di avere bisogno di una guida.Castle Windsor 3.0, Servizi e implementazione multipla
Ciò può essere in parte dovuto all'introduzione di Castle Windsor 3.0, tuttavia la maggior parte dei post del blog, domande SO e altra documentazione dipendono esplicitamente da quello che posso vedere ora è un codice deprecato.
Quindi: il problema?
Nella mia applicazione, che è un servizio WCF che fornisce il codice di back-end a un'applicazione MVC3, dispongo di più livelli, uno dei quali fornisce servizi di scansione antivirus per un sistema di caricamento file.
Il cliente ha chiesto il supporto per i servizi di scansione più, naturalmente, ho rispettato e ogni servizio di scansione implementa un'interfaccia IScanService, questa convenzione:
public interface IScanService
{
void Execute();
ScanResult GetResult();
}
Così nel servizio WCF, in cui il costruttore può apparire come:
public McAfeeFileScanService(IScanService mcAfeeScanService)
{
_scanService = scanService;
}
Come posso specializzo che l'IScanService che viene iniettato è di tipo implementazione McAfeeScanService, o NortonScanService o altre implementazioni?
AFAIK Windsor fornisce di default la prima implementazione registrata, che sia di tipo McAfeeScanService o meno.
Stavo cercando ServiceOverrides, tuttavia sembra essere stato deprecato in Windsor 3.0 in favore di DependsOn (Dependency.OnComponenent()) [ma non sono riuscito a trovare alcun esempio pertinente] Ive ha anche esaminato le installazioni di Typed Factory e in IHandlerSelector, ma ritengono che sia necessaria una guida per questo compito (apparentemente comune e probabilmente semplice).
Grazie a tutti.
Sì, questa è la conclusione a cui sono venuto, esulta per la risposta. Ill acept questo come risposta! – M05Pr1mty