MethodInvoker CvtActionToMI(Action d)
{
MethodInvoker converted = delegate { d(); };
return converted;
}
Извините, не то, что вы хотели.
Обратите внимание, что все делегаты являются многоадресными, поэтому не обязательно быть уникальным MethodInfo
. Это даст вам все из них:
MethodInfo[] CvtActionToMIArray(Action d)
{
if (d == null) return new MethodInfo[0];
Delegate[] targets = d.GetInvocationList();
MethodInfo[] converted = new MethodInfo[targets.Length];
for( int i = 0; i < targets.Length; ++i ) converted[i] = targets[i].Method;
return converted;
}
Хотя вы теряете информацию о целевых объектах (не обращая внимания на делегата), поэтому я не ожидаю, что NUnit сможет потом что-либо успешно вызывать.