private static IEnumerable <FieldMember> GetMethods( Type resolverType, NameString typeName) { MethodInfo[] methods = resolverType.GetMethods( BindingFlags.Public | BindingFlags.Instance); foreach (MethodInfo method in methods) { if (method.IsDefined(typeof(GraphQLNameAttribute))) { GraphQLNameAttribute name = method .GetCustomAttribute <GraphQLNameAttribute>(); yield return(new FieldMember( typeName, name.Name, method)); } else { if (method.Name.StartsWith("Get", StringComparison.Ordinal) && method.Name.Length > 3) { yield return(new FieldMember( typeName, AdjustCasing(method.Name.Substring(3)), method)); } yield return(new FieldMember( typeName, AdjustCasing(method.Name), method)); } } }
private static IEnumerable <FieldMember> GetProperties( Type resolverType, NameString typeName) { PropertyInfo[] properties = resolverType.GetProperties( BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo property in properties) { if (property.IsDefined(typeof(GraphQLNameAttribute))) { GraphQLNameAttribute name = property .GetCustomAttribute <GraphQLNameAttribute>(); yield return(new FieldMember( typeName, name.Name, property)); } else { yield return(new FieldMember( typeName, AdjustCasing(property.Name), property)); } } }