天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

如何解決分布式系統(tǒng)中的跨時區(qū)問題[實(shí)例篇]

  關(guān)于如何解決分布式系統(tǒng)中的跨時區(qū)問題,上一篇詳細(xì)介紹了解決方案的實(shí)現(xiàn)原理,在這一篇中我們通過一個完整的例子來對這個問題進(jìn)行深入探討。盡管《原理篇》中介紹了那么多,解決方案的本質(zhì)就是:在進(jìn)行服務(wù)調(diào)用過程中將客戶端的時區(qū)信息作為上下文傳入服務(wù)端,并以此作為時間轉(zhuǎn)換的依據(jù)。我們首先定一個具體的類型來定義包含時區(qū)信息的上下文類型,我們將這個類型起名為ApplicationContext。

  一、通過CallContext實(shí)現(xiàn)ApplicationContext

  在《通過WCF擴(kuò)展實(shí)現(xiàn)Context信息的傳遞》一文中,我通過HttpSessionState和CallContext實(shí)現(xiàn)了一個ApplicationContext類,為ASP.NET和其他類型的應(yīng)用提供上下文信息的容器。在這里進(jìn)行了簡化,僅僅實(shí)現(xiàn)了基于CallContext的部分。這樣一個ApplicationContext類型定義如下:

   1: [CollectionDataContract(Namespace="http://www.artech.com/")]
   2: public class ApplicationContext:Dictionary<string, object>
   3: {
   4:     internal const string contextHeaderName         = "ApplicationContext";
   5:     internal const string contextHeaderNamespace    = "http://www.artech.com/";
   6:  
   7:     private ApplicationContext() { }
   8:     public static ApplicationContext Current
   9:     {
  10:         get
  11:         {
  12:             if (null == CallContext.GetData(typeof(ApplicationContext).FullName)) 
  13:             {
  14:                 lock (typeof(ApplicationContext))
  15:                 {
  16:                     if (null == CallContext.GetData(typeof(ApplicationContext).FullName))
  17:                     {
  18:                         var context = new ApplicationContext();
  19:                         context.TimeZone = TimeZoneInfo.Local;
  20:                         CallContext.SetData(typeof(ApplicationContext).FullName, context);
  21:                     }
  22:                 }
  23:             }
  24:  
  25:             return (ApplicationContext)CallContext.GetData(typeof(ApplicationContext).FullName);
  26:         }
  27:         set
  28:         {
  29:             CallContext.SetData(typeof(ApplicationContext).FullName, value);
  30:         }
  31:     }
  32:     public TimeZoneInfo TimeZone
  33:     {
  34:         get
  35:         {
  36:             return TimeZoneInfo.FromSerializedString((string)this["__TimeZone"]);
  37:         }
  38:         set
  39:         {
  40:             this["__TimeZone"] = value.ToSerializedString();
  41:         }
  42:     }
  43:  
  44:     public static void Clear()
  45:     { 
  46:         CallContext.FreeNamedDataSlot(typeof(ApplicationContext).FullName);
  47:     }
  48: }

NET技術(shù)如何解決分布式系統(tǒng)中的跨時區(qū)問題[實(shí)例篇],轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 嗯啊好爽视频 | 小小水蜜桃3视频在线观看 小向美奈子厨房magnet | 日韩精品熟女一区二区三区中文 | 人妻少妇偷人精品无码洋洋AV | 蜜芽视频在线观看视频免费播放 | 色多多污污版免费下载安装 | 国产强奷糟蹋漂亮邻居在线观看 | 久久青草免费线观最新 | 快播看黄片 | 丰满五十六十老熟女HD60 | 曰本少妇高潮久久久久久 | 久久无码人妻AV精品一区 | 精品香蕉99久久久久网站 | 亚洲欧美无码2017在线 | 亚洲欧洲精品成人久久曰影片 | 国产强奷伦奷片 | 夜色88V精品国产亚洲AV | 使劲别停好大好深好爽动态图 | 浪货嗯啊趴下NP粗口黄暴 | 一本道中文无码亚洲 | 天上人间影院久久国产 | 国产浮力草草影院CCYY | 免费果冻传媒2021在线看 | 国产精品永久免费视频观看 | 国产女人喷潮视频免费 | a在线观看免费视频 | 亚洲精品成人AV在线观看爽翻 | 一边亲着一面膜下的免费过程 | 陈红下面又紧又小好爽 | 嘟嘟嘟在线视频免费观看高清中文 | 2019精品国产品在线不卡 | 国产人妻人伦精品无码.麻豆 | 9久久99久久久精品齐齐综合色圆 | 亚洲AV永久无码精品老司机蜜桃 | 一本道手机无码在线看 | 男子扒开美女尿口做羞羞的事 | 成人a视频片在线观看免费 成人a毛片久久免费播放 | 日本美女bb | 国产亚洲精品久久精品6 | 中文字幕亚洲欧美在线视频 | 精品亚洲永久免费精品 |