国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

設計適用于SOA的類型

2019-11-17 03:20:47
字體:
來源:轉載
供稿:網友

設計適用于SOA的類型

我們經常把一個項目分層去開發,無論是通過三層來面向對象開發還是用WCF或Remoting等面向服務的方式開發,返回值只有一個,如果底層出錯了我們一般寫日志來記錄這些錯誤,然后分析錯誤來解決問題,但用戶無法知道是不是自己操作不當,因為錯誤內容無法返回到界面上提示,不知道各位是如何處理這個問題的。如果是面向對象的話,我們可以通過 throw Exception 在 UI 上捕捉到異常。但是如果是面向服務的話,就只會返回一個服務器內部錯誤,具體原因體現不出來,我們當然在方法中添加 ref ErrorCode和 ref ErrorMsg 達到返回錯誤信息的目的。而且比如Remoting的話,并不能傳輸所以的對象,所以我們需要先序列化成xml或Json來傳遞。鑒于這類操作,我模仿京東商城的SDK,練習著寫了一下新的類。首先我先定義了一個基類 WObject
 [Serializable]    public class WObject    {        public WObject() { }        /// <summary>        /// 返回值        /// </summary>        PRivate object objRet;        #region 錯誤信息        private String _ErrCode = "";        /// <summary>        /// 錯誤碼        /// </summary>        public String ErrCode        {            get { return _ErrCode; }            set { _ErrCode = value; }        }        private String _ErrMsg = "";        /// <summary>        /// 錯誤信息        /// </summary>        public String ErrMsg        {            get { return _ErrMsg; }            set { _ErrMsg = value; }        }        /// <summary>        /// 獲取錯誤信息        /// </summary>        public String GetFullMsg        {            get { return string.Format("{0}|{1}", ErrCode, ErrMsg); }        }        /// <summary>        /// 響應結果是否錯誤        /// </summary>        public bool IsError        {            get { return (!string.IsNullOrEmpty(this.ErrCode) || !string.IsNullOrEmpty(this.ErrMsg)); }        }        #endregion        #region 序列化/反序列化        public string ToJson()        {            return JsonConvert.SerializeObject(this);        }        public static T FromJson<T>(string sJson) where T : WObject        {            return JsonConvert.DeserializeObject<T>(sJson);        }        #endregion    }
WObject

這里序列化和反序列化,我用 Json.Net。

我們最常用的就String,所以現在我們先擴展一下他,當然WObject也可以直接使用。接下來我們的WString 是繼承了WObject的
 public class WString : WObject    {        /// <summary>        /// 默認構造函數        /// </summary>        public WString() { }        public WString(params string[] strs)        {            sRet = string.Concat(strs);        }        public WString(params object[] strs)        {            sRet = string.Concat(strs);        }        /// <summary>        /// 返回值        /// </summary>        public string sRet = "";    }
WString

錯誤信息和序列化,都是放在基類里面的,所以這里我只需要定義一個返回值。

因為經常拼接字符串,所以就在構造函數里面添加了可變參數,這樣在實例化的時候就方便了一些。

下面我來用一下這貨:實例化:使用錯誤信息:序列化:反序列化:我想把這個程序集一直擴展下去,但能力有限,求各位大神協助我完善,幫助我學習,謝謝了。Git:http://git.oschina.net/wangjunjie/WLF.git之前還想過跳槽去上海闖闖,現在想想自己還沒什么能拿的出的東西,索性寫這個WLF來鍛煉一下自己,爭取今年達到自己的目標。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 烟台市| 双峰县| 建瓯市| 喀什市| 海宁市| 恩平市| 皋兰县| 西昌市| 黑龙江省| 嵊泗县| 东莞市| 龙泉市| 博爱县| 安龙县| 泽普县| 防城港市| 古交市| 黎城县| 泸州市| 荆门市| 商城县| 和静县| 庐江县| 竹北市| 修文县| 鄂伦春自治旗| 阳信县| 安宁市| 潼南县| 祁连县| 濉溪县| 遵化市| 汽车| 密山市| 鹤峰县| 乐陵市| 竹北市| 区。| 浙江省| 福清市| 岑巩县|