Example #1
0
            void AssertEqualsM(IMethodInfo m1, IMethodInfo m2)
            {
                if (m1 == null || m2 == null)
                {
                    Assert.AreSame(m1, m2);
                    return;
                }

                Assert.AreEqual(m1.Name, m2.Name);
                Assert.AreEqual(m1.IsSpecial, m2.IsSpecial);
                Assert.AreEqual(m1.IsFinal, m2.IsFinal);
                Assert.AreEqual(m1.IsStatic, m2.IsStatic);
                Assert.AreEqual(m1.AccessModifiers, m2.AccessModifiers);

                AssertEqualsT(m1.DeclaringType, m2.DeclaringType);
                AssertSequenceEqualsT(m1.DeclaringInterfaces, m2.DeclaringInterfaces);
                AssertSequenceEqualsP(m1.Parameters, m2.Parameters);
                AssertEqualsMP(m1.ReturnValue, m2.ReturnValue);

                IGenericMethodInfo
                    gm1 = m1 as IGenericMethodInfo,
                    gm2 = m2 as IGenericMethodInfo;

                Assert.AreEqual(gm1 != null, gm2 != null);
                if (gm1 != null)
                {
                    AssertSequenceEqualsT(gm1.GenericArguments, gm2.GenericArguments);
                }
            }
Example #2
0
        public static int GetMethodGenerity(IMethod method)
        {
            IConstructedMethodInfo constructedInfo = method.ConstructedInfo;

            if (constructedInfo != null)
            {
                return(constructedInfo.GenericArguments.Length);
            }

            IGenericMethodInfo genericInfo = method.GenericInfo;

            if (genericInfo != null)
            {
                return(genericInfo.GenericParameters.Length);
            }

            return(0);
        }