Вам необходимо полностью указать имя метода, потому что они используют явную реализацию интерфейса:
Type type = typeof( Application ).GetNestedType( "ThreadContext",
BindingFlags.NonPublic );
MethodInfo doIdle = type.GetMethod(
"System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle",
BindingFlags.NonPublic | BindingFlags.Instance );
Для справки, размышления о непубличных участниках, как правило, плохая практика, но вы, вероятно, уже знаете это.
РЕДАКТИРОВАТЬ В духе обучения человека ловить рыбу я понял это, вызвав GetMethods(...)
для объекта типа и проверив возвращаемый массив, чтобы увидеть, как были названы методы. Конечно же, имена включали полную спецификацию пространства имен.