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

如何解決分布式系統中的跨時區問題[實例篇]

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

  一、通過CallContext實現ApplicationContext

  在《通過WCF擴展實現Context信息的傳遞》一文中,我通過HttpSessionState和CallContext實現了一個ApplicationContext類,為ASP.NET和其他類型的應用提供上下文信息的容器。在這里進行了簡化,僅僅實現了基于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技術如何解決分布式系統中的跨時區問題[實例篇],轉載需保留來源!

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

主站蜘蛛池模板: 亚洲 天堂 国产在线播放 | 啪啪漫画无遮挡全彩h网站 啪啪漫画无遮挡全彩h同人 | 亚洲国产剧情中文视频在线 | 俄罗斯美女破处 | 九九热视频这里只有精 | 免费看毛片的网址 | 古代荡乳尤物H妓女调教 | 在线播放日韩欧美亚洲日本 | 嫩草影院地址一地址二 | 99香蕉精品视频在线观看 | 天堂Av亚洲欧美日韩国产综合 | 久久只有这里有精品4 | 永久免费精品精品永久-夜色 | 国产高清视频在线播放www色 | 伊人久久大香线蕉综合色啪 | 综合亚洲桃色第一影院 | 性高跟鞋xxxxhd | 青柠在线观看视频在线高清完整 | 女侠含泪巨臀迎合79 | 一抽一出BGM免费50分动漫 | 亚洲国产欧美国产综合在线 | YELLOW在线观看高清视频免费 | 日本午夜精品久久久无码 | 动漫女生的逼 | 秋霞电影院兔费理论观频84mb | 电影 qvod| 麻豆国产精品va在线观看约 | se01短视频在线观看 | 国产AV视频二区在线观看 | 欧美日韩免费播放一区二区 | 久久精品一区二区影院 | 中文字幕无码乱人伦蜜桃 | ewp绞死vk失禁编 | 免费的好黄的漫画 | 忘忧草在线影院WWW日本动漫 | YIN荡的老师系列第6部分视频 | 国产精品成人A蜜柚在线观看 | 欧洲内射VIDEOXXX3D | 高H辣肉办公室 | 蜜芽国产在线精品欧美 | 亚洲午夜久久久久久久久电影网 |