Here is my issue;
public class MyClass<T>
{
public void DoSomething(T obj)
{
....
}
}
What I did is:
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"});
In the above case the exception I get is: Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true.
If I try to make the method generic it fails again with an exception: MakeGenericMethod may only be called on a method for which MethodBase.IsGenericMethodDefinition is true.
How should I invoke the method?