private List<MethodInfo> FindMethodsInAssemblyFromTypes(Predicate<Type> typeCondition, string methodName, Func<Type, Type[]> genericTypeArguments)
{
var methods = new List<MethodInfo>();
var assemblies = GetAssemblies();
foreach (var assembly in assemblies)
{
foreach (var type in assembly.GetTypes())
{
if (typeCondition(type))
methods.Add(type.GetMethod(methodName, genericTypeArguments(type)));
}
}
return methods;
}