Aquí está mi problema;Invocar un método no genérico con argumentos genéricos definidos en una clase genérica
public class MyClass<T>
{
public void DoSomething(T obj)
{
....
}
}
Lo que hice es:
var classType = typeof(MyClass<>);
Type[] classTypeArgs = { typeof(T) };
var genericClass = classType.MakeGenericType(classTypeArgs);
var classInstance = Activator.CreateInstance(genericClass);
var method = classType.GetMethod("DoSomething", new[]{typeof(T)});
method.Invoke(classInstance, new[]{"Hello"});
En el caso anterior la excepción que recibo es: Late operaciones con destino no se pueden realizar en los tipos o métodos para el que ContainsGenericParameters es cierto.
Si trato de hacer que el método genérico vuelve a fallar con una excepción: MakeGenericMethod sólo pueden ser llamados en un método para el que MethodBase.IsGenericMethodDefinition es cierto.
¿Cómo debo invocar el método?
¡Perfecto! Esto tuvo mi perplejo por horas ... – CRG