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);
}