您的位置:首页 > 其它

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

2014-10-29 11:23 169 查看
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(); 一次
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: