Esempio n. 1
0
        [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);
        }