0

我有一个要消耗的服务总线队列。我发现的所有示例都建议编写如下内容:

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

上面代码的问题是队列名称在我的程序中是硬编码的。我希望能够像使用队列连接字符串一样从配置中获取队列名称。不幸的是,属性只能传递编译时常量,所以我不能传递一些来自配置的静态初始化字符串。

我环顾四周,找不到任何其他方法来设置服务总线功能绑定。这是不可能的吗?

4

1 回答 1

1

您可以使用自定义INameResolver来完成您想要的。

此处的官方示例之一完全涵盖了您的场景。看看里面的ShutdownMonitor功能Functions.cs,然后在ConfigNameResolver课堂上。

于 2014-10-26T03:43:38.140 回答