Re:
T.A();
no puede llamar a métodos estáticos del tipo de parámetro, si eso es lo que quiere decir. Haría mejor en refactorizar eso como un método de instancia de T
, quizás con una restricción genérica (where T : SomeTypeOrInterface
, con SomeTypeOrInterface
definiendo A()
). Otra alternativa es dynamic
, que permite el tipado de pato de los métodos instancia (mediante firma).
Si se refiere a que el T
sólo se conoce en tiempo de ejecución (como Type
), entonces usted tendría que:
typeof(GenericClass<>).MakeGenericType(type).GetMethod(...).Invoke(...);
¿Es posible utilizar clase pública GenericClass donde T: SomeType1, SomeType2, new() –
Dusan
No, solo puede especificar una clase base (puede crear un SomeTypeBase, especificar esto como la restricción de tipo y dejar que SomeType1 y SomeType3 hereden de este Clase SomeTypeBase). – Peter