in src/Microsoft.Azure.WebJobs.Extensions.Dapr/Triggers/DaprTopicTriggerBindingProvider.cs [38:67]
public Task<ITriggerBinding?> TryCreateAsync(TriggerBindingProviderContext context)
{
ParameterInfo parameter = context.Parameter;
var attribute = parameter.GetCustomAttribute<DaprTopicTriggerAttribute>(inherit: false);
if (attribute == null)
{
return BindingUtils.NullTriggerBindingTask;
}
// Resolve names in pub/sub, topic, and route from settings
if (!this.nameResolver.TryResolveWholeString(attribute.PubSubName, out var pubSubName))
{
pubSubName = attribute.PubSubName;
}
string topic = TriggerHelper.ResolveTriggerName(parameter, this.nameResolver, attribute.Topic);
if (attribute.Route is null || !this.nameResolver.TryResolveWholeString(attribute.Route, out var route))
{
route = attribute.Route ?? topic;
}
if (!route.StartsWith("/"))
{
route = "/" + route;
}
return Task.FromResult<ITriggerBinding?>(
new DaprTopicTriggerBinding(this.logger, this.serviceListener, pubSubName, topic, route, parameter));
}