亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

在WCF數據訪問中使用緩存提高Winform字段中文顯示速度的方法

2020-01-24 02:26:13
字體:
來源:轉載
供稿:網友

本文較為詳細的講述了在WCF數據訪問中使用緩存提高Winform字段中文顯示速度的方法,分享給大家供大家參考之用。具體方法如下:

在我們開發基于WCF訪問方式的Winform程序的時候,一般情況下需要對界面顯示的字段進行中文顯示的解析。如果是硬編碼進行中文顯示,那么除了不方便調整及代碼臃腫外,性能上沒有什么問題,但是不建議這樣處理;一般情況下,我們把中文對照信息放到業務類里面去統一解析,但是這樣會導致每次WCF訪問方式請求解析中文化的操作耗費一定的響應時間。如果使用緩存存儲中文字段的對照表,那么就不用每次請求WCF的數據訪問,減少一些響應時間的消耗,提高用戶體驗效果。

1、使用硬編碼方式的中文化解析操作

硬編碼的方式,中文化字段的操作,是在本地進行的,一般響應會比較快,如下代碼所示。

public void BindData(){  #region 添加別名解析  this.winGridViewPager1.DisplayColumns = "ID,User_ID,LoginName,FullName,Note,IPAddress,MacAddress,SystemType_ID,LastUpdated";  this.winGridViewPager1.AddColumnAlias("ID", "編號");  this.winGridViewPager1.AddColumnAlias("User_ID", "登錄用戶ID");  this.winGridViewPager1.AddColumnAlias("LoginName", "登錄名");  this.winGridViewPager1.AddColumnAlias("FullName", "真實名稱");  this.winGridViewPager1.AddColumnAlias("Note", "日志描述");  this.winGridViewPager1.AddColumnAlias("IPAddress", "IP地址");  this.winGridViewPager1.AddColumnAlias("MacAddress", "Mac地址");  this.winGridViewPager1.AddColumnAlias("LastUpdated", "記錄日期");  this.winGridViewPager1.AddColumnAlias("SystemType_ID", "系統類型");  #endregion  string where = GetConditionSql();  PagerInfo pagerInfo = this.winGridViewPager1.PagerInfo;  List<LoginLogInfo> list = CallerFactory<ILoginLogService>.Instance.FindWithPager(where, ref pagerInfo);  this.winGridViewPager1.DataSource = new WHC.Pager.WinControl.SortableBindingList<LoginLogInfo>(list);}

只是這種方式彈性化不太好,如果字段比較多,在界面里面就有很多這樣的代碼,而且如果多處有這樣的解析,就不好控制解析字段名稱的一致性。

2、中文化統一解析操作

為了克服第一種方案的弊端,我們可以把中文化參考的操作移到底層DAL去實現,高一層的接口,只需要調用它進行解析(方法GetColumnNameAlias)就可以了。

/// <summary>/// 綁定列表數據/// </summary>private void BindData(){  this.winGridViewPager1.DisplayColumns = "HandNo,CardNo,CardStatus,CardGrade,Name,Sex,Telephone,Mobile,OpenDate,ValidateDate,Discount,Balance,MaxCount,Creator,CreateTime";  this.winGridViewPager1.ColumnNameAlias = CallerFactory<IMemberService>.Instance.GetColumnNameAlias();//字段列顯示名稱轉義  string where = GetConditionSql();  List<MemberInfo> list = CallerFactory<IMemberService>.Instance.FindWithPager(where, this.winGridViewPager1.PagerInfo);  this.winGridViewPager1.DataSource = new WHC.Pager.WinControl.SortableBindingList<MemberInfo>(list);  this.winGridViewPager1.PrintTitle = "會員信息報表";}

這樣處理后,解析的統一性提高了,代碼也簡化了很多,基本上達到了我們期望的效果。但是唯一的問題就是如果是WCF的數據訪問方式,那么每次訪問都會耗費一定的處理時間。

如果我們使用緩存,第二次直接從本地獲取,那么速度會提高很多,特別是表的字段參照對象比較多的時候,性能提高更加明顯。

3、使用緩存的操作處理

由于.NET提供了MemoryCache對象給我們進行緩存的處理,我們利用它就可以很好實現了,為了方便,我們可以對它進行一定的封裝后在使用。

首先,我們希望封裝后提供一個通用的對字段中文化的處理函數,傳入相應的參數就可以了。因此先封裝好一個輔助類。

/// <summary>/// 提供一些常見操作的緩存處理/// </summary>public class CacheDataUtil<T> where T : BaseEntity{  /// <summary>  /// 獲取指定對象的別名  /// </summary>  /// <typeparam name="T">實體類信息</typeparam>  /// <param name="service">接口服務對象</param>  /// <returns></returns>  public static Dictionary<string, string> GetColumnNameAlias(IBaseService<T> service)  {    System.Reflection.MethodBase method = System.Reflection.MethodBase.GetCurrentMethod();    string key = string.Format("{0}-{1}-{2}", method.DeclaringType.FullName, method.Name, typeof(T).Name);    return MemoryCacheHelper.GetCacheItem<Dictionary<string, string>>(    key,      delegate() { return service.GetColumnNameAlias(); },      new TimeSpan(24, 0, 0));//24小時,即1天后過期  }}

然后在主體界面里面,我們綁定分頁控件的處理代碼如下所示即可。

/// <summary>/// 綁定列表數據/// </summary>private void BindData(){  //entity  this.winGridViewPager1.DisplayColumns = displayColumns;      //this.winGridViewPager1.ColumnNameAlias = CallerFactory<ICustomerService>.Instance.GetColumnNameAlias();//字段列顯示名稱轉義  //使用緩存存儲表的別名,可以有效提高二次顯示速度  this.winGridViewPager1.ColumnNameAlias = CacheDataUtil<CustomerInfo>.GetColumnNameAlias(CallerFactory<ICustomerService>.Instance);//字段列顯示名稱轉義  string where = GetConditionSql();  PagerInfo pagerInfo = this.winGridViewPager1.PagerInfo;  List<CustomerInfo> list = CallerFactory<ICustomerService>.Instance.FindWithPager(where, ref pagerInfo);  this.winGridViewPager1.DataSource = new WHC.Pager.WinControl.SortableBindingList<CustomerInfo>(list);  this.winGridViewPager1.PrintTitle = "客戶信息列表";}

運行如下圖所示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜www高清视频| 国产999精品| 日韩一级黄色av| 中文字幕日韩视频| 91久久嫩草影院一区二区| 日韩av在线天堂网| 国产在线精品成人一区二区三区| 不卡av电影在线观看| 国产精品美女主播在线观看纯欲| 日本久久久久久久| 亚洲免费视频在线观看| 亚洲人成在线观看| 久久久国产91| 91高清免费视频| 国产一区二区三区在线免费观看| 日韩在线视频播放| 色噜噜狠狠狠综合曰曰曰88av| 国产91色在线| 日韩精品免费在线视频| 国产在线久久久| 国产丝袜一区二区三区免费视频| 国产精品美女久久久久av超清| 情事1991在线| 久久久精品欧美| 日韩毛片中文字幕| 一本一本久久a久久精品牛牛影视| 美日韩丰满少妇在线观看| 亚洲成人在线网| 久久影院模特热| 国产精品久久久久久久久久| 亚洲福利视频网站| 久久久影视精品| 精品久久久久人成| 欧美性生交xxxxx久久久| 精品国产欧美成人夜夜嗨| 国产精品99久久久久久www| 国产精品福利在线观看网址| xx视频.9999.com| 亚洲女同精品视频| 国产成人涩涩涩视频在线观看| 国自产精品手机在线观看视频| 中文字幕亚洲精品| 日韩在线免费高清视频| 国产精品91久久久| 亚洲影视九九影院在线观看| 国产一区欧美二区三区| 欧美激情免费看| 精品国产户外野外| 国产精品第2页| 日韩乱码在线视频| 伊人久久久久久久久久久久久| 久久国产精品久久久久| 日韩高清有码在线| 亚洲一区二区三区视频播放| 日韩美女av在线免费观看| 亚洲精品久久久久久久久| 国色天香2019中文字幕在线观看| 久久久久久久999| 国产亚洲精品美女久久久| 欧美—级a级欧美特级ar全黄| 日韩经典中文字幕| 91精品久久久久久久久不口人| 日韩精品在线私人| 欧美日韩国产丝袜美女| 九色精品免费永久在线| 欧美在线观看网址综合| 国产欧美日韩亚洲精品| 久久影视电视剧免费网站清宫辞电视| 国产精品直播网红| 欧美大片va欧美在线播放| 日韩av在线直播| 欧美性猛交xxxx乱大交极品| 中文字幕国产精品久久| 国产成人欧美在线观看| 91国产视频在线| 久久精品一本久久99精品| 中文字幕欧美日韩| www.久久色.com| 亚洲理论电影网| 亚洲激情电影中文字幕| 久久天天躁夜夜躁狠狠躁2022| 自拍偷拍亚洲欧美| 日韩精品999| 奇米成人av国产一区二区三区| 成人欧美一区二区三区在线| 国产精品天天狠天天看| 日韩在线视频二区| 亚洲欧美日韩精品久久亚洲区| 69**夜色精品国产69乱| 国产精品99一区| 国产精品视频在线观看| 中文字幕精品影院| 亚洲大胆人体av| 国产日韩欧美影视| 国产精品欧美日韩一区二区| 久久精品国产成人精品| 欧美激情国产高清| 在线日韩日本国产亚洲| 不卡av在线播放| 热久久99这里有精品| 国产精品一区二区久久久| 青草成人免费视频| 亚洲精品日韩丝袜精品| 日本精品性网站在线观看| 欧美日在线观看| 欧洲精品毛片网站| 午夜欧美大片免费观看| 成人国产精品免费视频| 最近2019免费中文字幕视频三| 91av成人在线| 久久97久久97精品免视看| 亚洲男人天堂2024| 亚洲韩国欧洲国产日产av| 国产精品久久久久久一区二区| 国产91免费看片| 久久人人97超碰精品888| 91av国产在线| 久久视频国产精品免费视频在线| 国模精品一区二区三区色天香| 亚洲aⅴ男人的天堂在线观看| 久久这里有精品视频| 国产视频精品va久久久久久| 97超级碰碰人国产在线观看| 欧美性xxxx在线播放| 国产一区二区在线免费| 日本人成精品视频在线| 欧美日韩在线观看视频小说| 亚洲网站在线播放| 日本免费在线精品| 亚洲成av人影院在线观看| 日本国产欧美一区二区三区| 国模精品视频一区二区| 中文字幕免费精品一区| 国产偷国产偷亚洲清高网站| 色噜噜狠狠狠综合曰曰曰| 国产欧美精品久久久| 久久久成人的性感天堂| 精品久久久久久久久久久| 91po在线观看91精品国产性色| 欧美激情视频网站| 美日韩精品免费观看视频| 国产精品久久久久久av| 欧美在线视频一区二区| 久久免费视频网| 91在线免费网站| 热久久免费视频精品| 最近2019年中文视频免费在线观看| 欧美日韩福利视频| 中文字幕日韩免费视频| 日韩av一区在线| 亚洲人成伊人成综合网久久久| 日韩av电影院| 国模精品一区二区三区色天香| 亚洲日本中文字幕| 亚洲一区美女视频在线观看免费| 欧美在线一级va免费观看| 日韩在线欧美在线| 91九色蝌蚪国产| 欧美有码在线视频| 久久影院中文字幕| 亚洲色图日韩av| 欧美中文在线视频| 欧美天天综合色影久久精品| 久久久久国产精品www|