Ho una classe che viene utilizzata in un'applicazione client e in un'applicazione server. Nell'applicazione server, aggiungo alcune funzionalità ai metodi di estensione della classe attraverso. Funziona alla grande. Ora voglio ancora un po ':Metodi di estensione virtuale?
La mia classe (B) eredita da un'altra classe (A).
Vorrei aggiungere una funzione virtuale ad A (diciamo Execute()), quindi implementare quella funzione in B. Ma solo nel server. Il metodo Execute() dovrebbe fare cose che è possibile fare solo sul server, usando tipi che solo il server conosce.
Ci sono molti tipi che ereditano da A proprio come B, e mi piacerebbe implementare Execute() per ognuno di essi.
Speravo di aggiungere un metodo di estensione virtuale ad A, ma quell'idea non sembra volare. Sto cercando il modo più elegante per risolvere questo problema, con o senza metodi di estensione.
Grazie Marc. Implementerò qualcosa di simile. È un po 'più complicato per me, perché serializzo queste classi e le mando sul filo dal server al client e viceversa. Quindi il DI tradizionale potrebbe essere un po 'complicato, ma suppongo di poter implementare un equivalente serveride di classe B, (probabilmente ereditando da B), e quando il client invia al server un'istanza di B, dovrò sostituirlo con un nuova istanza di ServerB. – Lucas
L'approccio del registro funziona correttamente con la serializzazione. Io uso questo approccio per fare la condivisione degli assembly con oggetti WCF ... –