public Case(Type testClass, MethodInfo caseMethod, params object[] parameters) { this.parameters = parameters != null && parameters.Length == 0 ? null : parameters; Class = testClass; Method = caseMethod.IsGenericMethodDefinition ? caseMethod.MakeGenericMethod(GenericArgumentResolver.ResolveTypeArguments(caseMethod, parameters)) : caseMethod; Name = GetName(); }
public Case(MethodInfo caseMethod, params object[] parameters) { Parameters = parameters != null && parameters.Length == 0 ? null : parameters; Class = caseMethod.ReflectedType; Method = caseMethod.IsGenericMethodDefinition ? caseMethod.MakeGenericMethod(GenericArgumentResolver.ResolveTypeArguments(caseMethod, parameters)) : caseMethod; MethodGroup = new MethodGroup(caseMethod); Name = GetName(); exceptions = new List <Exception>(); }
private static MethodInfo TryResolveTypeArguments(MethodInfo caseMethod, object[] parameters) { if (caseMethod.IsGenericMethodDefinition) { var typeArguments = GenericArgumentResolver.ResolveTypeArguments(caseMethod, parameters); try { return(caseMethod.MakeGenericMethod(typeArguments)); } catch (Exception) { return(caseMethod); } } return(caseMethod); }