2012-07-03 23 views
6

Tengo una interfaz con objetos de tipo T al igual queiteración a través de lista de interfaces

public interface IService<T> 

Tengo un montón de estas interfaces con todo tipo diferente T. ¿Cómo puedo agregar estas interfaces en una lista de algún tipo, recorrer la lista y llamar a un método común utilizado por la interfaz. ¿Algunas ideas? ¿Hay un enfoque alternativo?

Si lo agrego a una lista, simplemente no puedo ver una forma de transmitir el tipo T correctamente.

Respuesta

13

Si el método es común, entonces es de suponer que no depende de la T, por lo que debe ser capaz de hacer:

interface IService { 
    void TheMethod(); 
} 
interface IService<T> : IService { 
    // other stuff 
} 

luego tener un List<IService>, y justo:

foreach(var svc in list) svc.TheMethod(); 
+0

¡perfecto gracias! – fes

Cuestiones relacionadas