in src/Microsoft.Azure.WebJobs.Extensions.Dapr/DaprExtensionConfigProvider.cs [50:126]
public void Initialize(ExtensionConfigContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
this.logger.LogInformation($"Registered Dapr extension");
var daprStateConverter = new DaprStateConverter(this.daprClient);
// NOTE: The order of conversions for each binding rules is important!
var stateRule = context.AddBindingRule<DaprStateAttribute>();
stateRule.AddConverter<byte[], DaprStateRecord>(CreateSaveStateParameters);
stateRule.AddConverter<JsonElement, DaprStateRecord>(CreateSaveStateParameters);
stateRule.AddConverter<JObject, DaprStateRecord>(CreateSaveStateParameters);
stateRule.AddConverter<JToken, DaprStateRecord>(CreateSaveStateParameters);
stateRule.AddConverter<object, DaprStateRecord>(CreateSaveStateParameters);
stateRule.BindToCollector(attr => new DaprSaveStateAsyncCollector(attr, this.daprClient));
stateRule.BindToInput<DaprStateRecord>(daprStateConverter);
stateRule.BindToInput<string>(daprStateConverter);
stateRule.BindToInput<Stream>(daprStateConverter);
stateRule.BindToInput<JsonElement>(daprStateConverter);
stateRule.BindToInput<JObject>(daprStateConverter);
stateRule.BindToInput<JToken>(daprStateConverter);
stateRule.BindToInput<OpenType>(typeof(DaprStateGenericsConverter<>), this.daprClient);
var invokeRule = context.AddBindingRule<DaprInvokeAttribute>();
invokeRule.AddConverter<byte[], InvokeMethodParameters>(CreateInvokeMethodParameters);
invokeRule.AddConverter<JsonElement, InvokeMethodParameters>(CreateInvokeMethodParameters);
invokeRule.AddConverter<JObject, InvokeMethodParameters>(CreateInvokeMethodParameters);
invokeRule.AddConverter<JToken, InvokeMethodParameters>(CreateInvokeMethodParameters);
invokeRule.AddConverter<object, InvokeMethodParameters>(CreateInvokeMethodParameters);
invokeRule.BindToCollector(attr => new DaprInvokeMethodAsyncCollector(attr, this.daprClient));
var publishRule = context.AddBindingRule<DaprPublishAttribute>();
publishRule.AddConverter<byte[], DaprPubSubEvent>(CreatePubSubEvent);
publishRule.AddConverter<JsonElement, DaprPubSubEvent>(CreatePubSubEvent);
publishRule.AddConverter<JObject, DaprPubSubEvent>(CreatePubSubEvent);
publishRule.AddConverter<JToken, DaprPubSubEvent>(CreatePubSubEvent);
publishRule.AddConverter<object, DaprPubSubEvent>(CreatePubSubEvent);
publishRule.BindToCollector(attr => new DaprPublishAsyncCollector(attr, this.daprClient));
var daprBindingRule = context.AddBindingRule<DaprBindingAttribute>();
daprBindingRule.AddConverter<byte[], DaprBindingMessage>(CreateBindingMessage);
daprBindingRule.AddConverter<JsonElement, DaprBindingMessage>(CreateBindingMessage);
daprBindingRule.AddConverter<JObject, DaprBindingMessage>(CreateBindingMessage);
daprBindingRule.AddConverter<JToken, DaprBindingMessage>(CreateBindingMessage);
daprBindingRule.AddConverter<object, DaprBindingMessage>(CreateBindingMessage);
daprBindingRule.BindToCollector(attr => new DaprBindingAsyncCollector(attr, this.daprClient));
var daprSecretConverter = new DaprSecretConverter(this.daprClient);
var secretsRule = context.AddBindingRule<DaprSecretAttribute>();
secretsRule.BindToInput<string?>(daprSecretConverter);
secretsRule.BindToInput<JsonElement>(daprSecretConverter);
secretsRule.BindToInput<JObject>(daprSecretConverter);
secretsRule.BindToInput<JToken>(daprSecretConverter);
secretsRule.BindToInput<OpenType>(typeof(DaprSecretsGenericsConverter<>), this.daprClient);
context.AddBindingRule<DaprServiceInvocationTriggerAttribute>()
.BindToTrigger(new DaprServiceInvocationTriggerBindingProvider(
this.loggerFactory.CreateLogger(LoggingUtils.CreateDaprTriggerCategory("ServiceInvocationTrigger")),
this.daprListener,
this.nameResolver));
context.AddBindingRule<DaprTopicTriggerAttribute>()
.BindToTrigger(new DaprTopicTriggerBindingProvider(
this.loggerFactory.CreateLogger(LoggingUtils.CreateDaprTriggerCategory("TopicTrigger")),
this.daprListener,
this.nameResolver));
context.AddBindingRule<DaprBindingTriggerAttribute>()
.BindToTrigger(new DaprBindingTriggerBindingProvider(
this.loggerFactory.CreateLogger(LoggingUtils.CreateDaprTriggerCategory("BindingTrigger")),
this.daprListener,
this.nameResolver));
}