static bool GenericMethodIsEquivalent(MethodBase Orig, MethodBase GenericCousin, ParameterInfo[] OrigParams)
{
if(Orig.Name != GenericCousin.Name) return false;
if(Orig.Attributes != GenericCousin.Attributes) return false;
ParameterInfo[] Params = Orig.GetParameters();
if(Params.Length != OrigParams.Length) return false;
int i;
for(i = 0; i < Params.Length; i++)
{
// TODO: Check if original parameter type matches original generic argument
if(Params[i].ParameterType != OrigParams[i].ParameterType &&
!Params[i].ParameterType.IsGenericParameter)
return false;
}
return true;
}
}