Well, based on your comments there may be a discontinuity from what you have written in your question and what you are trying to do. So I'll try and cover all the bases.
If the Execute method is static and defined on a base class you need to add the BindingFlags.FlattenHierarchy to your binding flags:
BindingFlags.InvokeMethod | BindingFlags.Public
| BindingFlags.Static | BindingFlags.FlatternHierarchy
This seems the most likely problem because you say that it isn't finding the method, but this flag is only effective if you are searching for a static member.
On the other hand if the method isn't static then the binding flags that you have are correct, but you'll need an instance of the type to run it against. Depending on how complicated it is to construct your concrete type you may be able to get away with just using the Activator class, otherwise you may need to create a factory of some kind.