public Task TryCreateAsync()

in src/Microsoft.Azure.WebJobs.Extensions.Kafka/Output/KafkaAttributeBindingProvider.cs [33:62]


        public Task<IBinding> TryCreateAsync(BindingProviderContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var parameter = context.Parameter;
            var attribute = parameter.GetCustomAttribute<KafkaAttribute>(inherit: false);
            if (attribute == null)
            {
                return Task.FromResult<IBinding>(null);
            }

            var argumentBinding = InnerProvider.TryCreate(parameter);
            var keyAndValueTypes = SerializationHelper.GetKeyAndValueTypes(attribute.AvroSchema, attribute.KeyAvroSchema, parameter.ParameterType, attribute.KeyDataType.GetDataType());

            IBinding binding = new KafkaAttributeBinding(
                parameter.Name,
                attribute,
                this.kafkaProducerFactory,
                argumentBinding,
                keyAndValueTypes.KeyType,
                keyAndValueTypes.ValueType,
                keyAndValueTypes.ValueAvroSchema,
                keyAndValueTypes.KeyAvroSchema,
                this.config,
                this.nameResolver);
            return Task.FromResult<IBinding>(binding);
        }