private void GenerateArgumentInvocation( FieldResolverArgumentDescriptor argumentDescriptor, StringBuilder source) { source.Append($"var {argumentDescriptor.VariableName} = "); switch (argumentDescriptor.Kind) { case FieldResolverArgumentKind.Argument: source.Append($"ctx.{nameof(IResolverContext.Argument)}<{GetTypeName(argumentDescriptor.Type)}>(\"{argumentDescriptor.Name}\")"); break; case FieldResolverArgumentKind.Field: source.Append($"ctx.{nameof(IResolverContext.Field)}"); break; case FieldResolverArgumentKind.FieldSelection: source.Append($"ctx.{nameof(IResolverContext.FieldSelection)}"); break; case FieldResolverArgumentKind.ObjectType: source.Append($"ctx.{nameof(IResolverContext.ObjectType)}"); break; case FieldResolverArgumentKind.OperationDefinition: source.Append($"ctx.{nameof(IResolverContext.Operation)}"); break; case FieldResolverArgumentKind.QueryDocument: source.Append($"ctx.{nameof(IResolverContext.QueryDocument)}"); break; case FieldResolverArgumentKind.Schema: source.Append($"ctx.{nameof(IResolverContext.Schema)}"); break; case FieldResolverArgumentKind.Service: source.Append($"ctx.{nameof(IResolverContext.Service)}<{GetTypeName(argumentDescriptor.Type)}>()"); break; case FieldResolverArgumentKind.Source: source.Append($"ctx.{nameof(IResolverContext.Parent)}<{GetTypeName(argumentDescriptor.Type)}>()"); break; case FieldResolverArgumentKind.Context: source.Append($"ctx"); break; case FieldResolverArgumentKind.CancellationToken: source.Append($"ct"); break; default: throw new NotSupportedException(); } source.Append(";"); }
private bool IsArgumentType(Type argumentType) { return(FieldResolverArgumentDescriptor .LookupKind(argumentType, Member.ReflectedType) == FieldResolverArgumentKind.Argument); }