我有一个我想要消耗的服务总线队列。我发现的所有样本都建议写这样的东西:
class Program
{
private static String ServiceBusConnectionString = ConfigurationManager.ConnectionStrings["Microsoft.ServiceBus.ConnectionString"].ConnectionString;
static void Main()
{
var jobHostConfiguration = new JobHostConfiguration
{
ServiceBusConnectionString = ServiceBusConnectionString,
};
var jobHost = new JobHost(jobHostConfiguration);
jobHost.RunAndBlock();
}
}
public class QueueItem
{
public String Name;
public Int64 Id;
}
public class Functions
{
public void ProcessQueueItem([ServiceBusTrigger("queue-name")] QueueItem queueItem)
{
// TODO: process queue item
}
}
上面代码的问题是队列名称在我的程序中是硬编码的。我希望能够像配置队列连接字符串一样从配置中获取队列名称。不幸的是,属性只能传递编译时常量,因此我无法传递来自配置的一些静态初始化字符串。
我环顾四周,无法找到任何其他方法来设置Service Bus功能绑定。这是不可能的吗?
答案 0 :(得分:1)
您可以使用自定义INameResolver
来完成您想要的任务。
其中一个官方样本here涵盖了您的情景。查看ShutdownMonitor
中的Functions.cs
功能,然后查看ConfigNameResolver
课程。