首页 > 代码库 > 扩展方法检测客户端队列是否存在

扩展方法检测客户端队列是否存在

public static class QeuedServiceHelper    {        public static void VerifyQeues()        {            Configuration config = ConfigurationManager.OpenExeConfiguration                (ConfigurationUserLevel.None);            ServiceModelSectionGroup  group=ServiceModelSectionGroup.GetSectionGroup(config);            foreach(ChannelEndpointElement endPoint in group.Client.Endpoints )            {                if (endPoint.Binding == "netMsmqBinding")                {                    string queue = GetQueueFromUri(endPoint.Address);                    if (MessageQueue.Exists(queue) == false)                    {                        MessageQueue.Create(queue);                    }                }            }        }    }}

使用ConfigurationManager提供了类型安全的方法来解析配置文件。它会加载WCF的配置数据(在ServiceModel     SectionGroup里),然后遍历所有的终结点。对于每个使用MSMQ绑定的终结点,VerifyQueue()会在必要时创建队列

 

以上方法也可以简化为:

            QeuedServiceHelper.VerifyQeues();            MyContractClient proxy = new MyContractClient();            proxy.MyMeThod();            proxy.close();

应该注意的是客户端在发出队列调用之前调用QeuedServiceHelper.VerifyQeues(); 一次

扩展方法检测客户端队列是否存在