日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

消息队列工具类(MSMQ)

發(fā)布時間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 消息队列工具类(MSMQ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

所要做的是簡化msmq的調(diào)用代碼以及做到可替代性,實現(xiàn)后,調(diào)用消息隊列代碼變?yōu)槿缦滤?#xff1a;

QueueService srv = QueueService.Instance();//檢查存儲DTO1的隊列是否存在,如不存在則自動建立 srv.Prepare<DTO1>();//發(fā)送類型為DTO1的消息 srv.Send<DTO1>(new DTO1() { p1="1", p2="2" });//發(fā)送類型為DTO1的消息,并且將發(fā)送的消息Id保存到msgId變量中 string msgId=srv.Send<DTO1>(new DTO1() { p1 = "1", p2 = "2" });//接收末尾消息 DTO1 msg = srv.Receive<DTO1>();//接收末尾消息,并且將這個消息Id保存在msgId變量中 DTO1 msg = srv.Receive<DTO1>(ref msgId);//發(fā)送回復消息,并且指定這個回復消息是特定消息ID所專有的回復消息 srv.SendResponse<DTO1>(msg, msgId);//接收特定消息ID的回復消息 msg=srv.ReceiveResponse<DTO1>(msgId);

?

主要的地方有2個:

  • msmq消息大小限制的突破(4M突破)
  • 泛型T對象的序列化、反序列化

突破大小限制

  • 如果大小在4M內(nèi),則直接msmq封裝(MessageLocation=InQueue)
  • 如果在4M外,則通過網(wǎng)絡共享文件來封裝(MessageLocation=InNetwork)

泛型T對象的序列化、反序列化

  • 固定住所要傳遞的對象類型為MessageWrapper
  • 在MessageWrapper內(nèi)部嵌入用戶想要傳遞的其他對象以及相應的type、module名,這樣MessageWrapper就能進行自動xml化以及反xml化了

MessageWrapper代碼如下:

public class MessageWrapper{private ShareFileBroker fileBroker;public MessageWrapper(){PersistenceType = MessageLocation.InQueue;fileBroker = new ShareFileBroker(FileService.FileService.Instance());}public string RealObjectType { get; set; }public string RealObjectModule { get; set; }public string RealObjectXml { get; set; }public string NetworkLocation { get; set; }public MessageLocation PersistenceType { get; set; }public void Inject<T>(T obj){this.RealObjectType = typeof(T).FullName;this.RealObjectModule = typeof(T).Module.Name;string xml = SerializeUtils.Serialize2XML(typeof(T), obj);SaveXML(xml);}public T Extract<T>(){Assembly assembly = AppDomain.CurrentDomain.Load(this.RealObjectModule.TrimEnd(".dll".ToCharArray()));Type type = assembly.GetType(this.RealObjectType);string xml = GetXML();return (T)SerializeUtils.DeserializeFromXML(type, xml);}private string GetXML(){string xml = "";if (this.PersistenceType == MessageLocation.InQueue)xml = this.RealObjectXml;else if (this.PersistenceType == MessageLocation.InNetwork)xml = fileBroker.GetContentAndDelete(this.NetworkLocation);return xml;}private void SaveXML(string xml){if (xml.Length > QueueConfiguration.QueueConfiguration.MaxQueueBodyLength){this.NetworkLocation = fileBroker.Save(xml);this.PersistenceType = MessageLocation.InNetwork;}else{this.RealObjectXml = xml;this.PersistenceType = MessageLocation.InQueue;}}}

?代碼比較簡單,就不介紹了。

?

轉載于:https://www.cnblogs.com/aarond/p/QueueService.html

總結

以上是生活随笔為你收集整理的消息队列工具类(MSMQ)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品一区二区三区四区五区 | 狠色综合 | 色屁屁www | 大陆av在线| 国产精品免费无遮挡无码永久视频 | 久久911| 麻豆免费观看网站 | 国产精品影院在线观看 | 黄网在线免费看 | 国产视频在线观看免费 | 国产激情一区二区三区四区 | 韩国av在线| 成人在线视频免费观看 | 免费不卡的av | 舐丝袜脚视频丨vk | 最新天堂中文在线 | 久久精品国产99精品国产亚洲性色 | 边吃奶边添下面好爽 | 人妻体体内射精一区二区 | 欧美激情国产在线 | 免费一二区 | 日韩午夜视频在线观看 | a天堂在线视频 | 亚洲成年人在线 | 日韩在线精品视频一区二区涩爱 | 欧美又粗又深又猛又爽啪啪九色 | 国产精品老女人 | 日韩乱论| 国产一区网站 | 奇米99| 日韩在线精品视频一区二区涩爱 | 国产女人水真多18毛片18精品 | 人妻熟人中文字幕一区二区 | 色小姐av| av一级免费| 国产suv精品一区二区883 | 中文字幕你懂的 | 美腿丝袜亚洲综合 | 朝桐光av一区二区三区 | 国产福利片在线观看 | 亚洲国产精品久久久久久6q | 青青草综合在线 | 欧美一级一级 | 中文资源在线播放 | 欧美激情视频一区二区三区在线播放 | 日韩一级免费看 | 人妻少妇偷人精品久久久任期 | 色呦呦网站在线观看 | 五月激情综合 | 亚洲图片三区 | 国产在线观看99 | 日韩少妇高潮抽搐 | 精品黑人一区二区三区观看时间 | 女人18毛片毛片毛片毛片区二 | 日本一本在线视频 | 男人的天堂avav | 美女100%视频免费观看 | 欧美日韩精品一区二区三区 | 精品一区二区三区无码按摩 | 午夜一级免费 | 97欧美 | 国产精品3 | 亚洲网站免费看 | 国产成人精品一区二三区四区五区 | 黄在线观看免费 | 成人免费视频视频 | 国产艳俗歌舞表演hd | 视频一区二区不卡 | 91成人高清| 成人里番精品一区二区 | 亚洲成人av电影 | 日色视频 | 欧美伦理一区二区 | 色婷婷一区二区三区四区 | 巨乳免费观看 | 成人久久免费 | 亚洲第一国产 | 午夜成人免费电影 | 国产麻豆a毛片 | 黑丝美女av | 好色艳妇小说 | 人体写真 福利视频 | 亚洲欧美日韩在线 | 伊人精品久久 | 88国产精品视频一区二区三区 | 中文字幕在线观看日本 | 成人免费网站在线 | 狠狠干伊人 | 日本免费网站 | 小视频在线看 | 一区三区视频 | 99re6热在线精品视频播放 | 日韩在线| 欧美成人一级视频 | 亚洲一卡二卡 | 国产日本一区二区 | 樱花影院最新免费观看攻略 | 四虎永久在线精品 | 空姐吹箫视频大全 |