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); } }
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); }