public Task TryCreateAsync()

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