public Type GetArgumentType(string argName) { var argProp = ArgumentTypes.GetType().GetTypeInfo().GetProperties().Where(f => f.Name.ToLower() == argName.ToLower()).FirstOrDefault(); if (argProp == null) { var argField = ArgumentTypes.GetType().GetTypeInfo().GetFields().Where(f => f.IsPublic && f.Name.ToLower() == argName.ToLower()).FirstOrDefault(); if (argField == null) { throw new EntityGraphQLCompilerException($"{argName} is not an argument on field {Name}"); } return(argField.FieldType); } return(argProp.PropertyType); }