bool IsEventHandler (MethodInfo m)
{
int pos = m.Name.IndexOf ('_');
if (pos == -1 || (m.Name.Length - 1) <= pos)
return false;
if (m.ReturnType != typeof (void))
return false;
ParameterInfo [] pi = m.GetParameters ();
int length = pi.Length;
if (length == 0)
return true;
if (length != 2)
return false;
if (pi [0].ParameterType != typeof (object) ||
!typeof (EventArgs).IsAssignableFrom (pi [1].ParameterType))
return false;
return true;
}