The trick here describes that you want the parameter to SomeType<T>be where Tis the general type of method Add.
Other than that, it just uses standard reflection, as CastroXXL said in its answer.
Here is how I did it:
var theMethodISeek = typeof(MyClass).GetMethods()
.Where(m => m.Name == "Add" && m.IsGenericMethodDefinition)
.Where(m =>
{
var typeT = m.GetGenericArguments()[0];
var someTypeOfT =
typeof(SomeType<>).MakeGenericType(new[] { typeT });
return m.GetParameters().First().ParameterType == someTypeOfT;
})
.First();
source
share