예제 #1
0
        public void MethodStaticOnNonStaticTypeTest()
        {
            #if !NET5_0
            return;
            #endif
            MethodInfo method = Utils.GetMethod <NonGenericInstanceClass>(nameof(NonGenericInstanceClass.StaticNonGeneric));

            NonGenericInstanceClass.StaticNonGeneric();

            MethodHelper.ForceRecompile(method);

            NonGenericInstanceClass.StaticNonGeneric();

            int count = MethodsCompiled.ToList().Count(m => m == method);

            Assert.Equal(2, count);
        }
예제 #2
0
        public void MethodInstanceGenericTest(Type type)
        {
            #if !NET5_0
            return;
            #endif

            MethodInfo method = Utils.GetMethod <NonGenericInstanceClass>(nameof(NonGenericInstanceClass.Generic));
            method = method.MakeGenericMethod(type);

            NonGenericInstanceClass instance = new NonGenericInstanceClass();
            method.Invoke(instance, null);

            MethodHelper.ForceRecompile(method);

            method.Invoke(instance, null);

            method = (MethodInfo)MethodHelper.GetOriginalMethod(method);
            int count = MethodsCompiled.ToList().Count(m => m == method);

            Assert.Equal(2, count);
        }