[Test] public void GetInvoker_FiltersMethod() { Base b = new Base(); var message = "protected methods only"; var dProtected = Reflections.GetInvoker <Func <T> >( b, b.GetType(), "ProtectedVirtualInstance", BindingFlags.Instance | BindingFlags.NonPublic, null, null); Assert.NotNull(dProtected); var dPrivate = Reflections.GetInvoker <Action <T> >( b, b.GetType(), "PrivateInstance", BindingFlags.Instance | BindingFlags.NonPublic, null, null); Assert.NotNull(dPrivate); dProtected = Reflections.GetInvoker <Func <T> >( b, b.GetType(), "ProtectedVirtualInstance", BindingFlags.Instance | BindingFlags.NonPublic, m => m.IsFamily, message); Assert.NotNull(dProtected); var e = Assert.Throws <MissingMethodException>( delegate { Reflections.GetInvoker <Action <T> >( b, b.GetType(), "PrivateInstance", BindingFlags.Instance | BindingFlags.NonPublic, m => m.IsFamily, message); }); StringAssert.Contains(message, e.Message); }