Вы также можете напрямую получить доступ в самом объявлении атрибута.В настройках приложения у меня есть serviceBusConnectionString
, и я также использую триггер очереди в своем коде
public static async void Run([ServiceBusTrigger("orders", Connection = "serviceBusConnectionString")] Message myMessage, ILogger log)
{
//DoSomething
}
РЕДАКТИРОВАТЬ 2: Итак, если вы хотите, чтобы имя очереди также выбиралось из appSettings, просто создайте INameResolver
, чтобы разрешить любую строку, заключенную в знаки% (процентов).
public static async void Run([ServiceBusTrigger("%orders%", Connection = "serviceBusConnectionString")] Message myMessage, ILogger log)
{
//DoSomething
}
и напишите такой метод распознавания, как этот
public class QueueNameResolver : INameResolver
{
public string Resolve(string name)
{
return ConfigurationManager.AppSettings[name].ToString();
}
}
А затем в свой файл Program.cs добавьте приведенный ниже блок
var host = new JobHost(new JobHostConfiguration
{
NameResolver = new QueueNameResolver()
});
host.RunAndBlock();