显示众多结果信息方法[原]

常常项目中,需要显示一些返回的正确或错误信息,常用的方法有:

 1using System;
 2using System.Collections.Generic;
 3using System.Reflection;
 4using System.Text;
 5
 6namespace AFC.WorkStation.Comm
 7{
 8    public static class WinSockErrorCode
 9    {
10        // Return code/value ;
11        public const int WSA_INVALID_HANDLE = 6;
12        public const int WSA_NOT_ENOUGH_MEMORY = 8;
13        public const int WSA_INVALID_PARAMETER = 87;
14        public const int WSA_OPERATION_ABORTED = 995;
15        public const int WSA_IO_INCOMPLETE = 996;
16        public const int WSA_IO_PENDING = 997;
17        public const int WSAEINTR = 10004;
18        public const int WSAEBADF = 10009;
19        public const int WSAEACCES = 10013;
20        public const int WSAEFAULT = 10014;
21        public const int WSAEINVAL = 10022;
22        public const int WSAEMFILE = 10024;        
23        public const int WSA_QOS_BAD_OBJECT = 11013;
24        public const int WSA_QOS_TRAFFIC_CTRL_ERROR = 11014;
25        public const int WSA_QOS_GENERIC_ERROR = 11015;
26        public const int WSA_QOS_ESERVICETYPE = 11016;
27        public const int WSA_QOS_EFLOWSPEC = 11017;
28        public const int WSA_QOS_EPROVSPECBUF = 11018;
29        public const int WSA_QOS_EFILTERSTYLE = 11019;
30        public const int WSA_QOS_EFILTERTYPE = 11020;
31        public const int WSA_QOS_EFILTERCOUNT = 11021;
32        public const int WSA_QOS_EOBJLENGTH = 11022;
33        public const int WSA_QOS_EFLOWCOUNT = 11023;
34        public const int WSA_QOS_EUNKOWNPSOBJ = 11024;
35        public const int WSA_QOS_EPOLICYOBJ = 11025;
36        public const int WSA_QOS_EFLOWDESC = 11026;
37        public const int WSA_QOS_EPSFLOWSPEC = 11027;
38        public const int WSA_QOS_EPSFILTERSPEC = 11028;
39        public const int WSA_QOS_ESDMODEOBJ = 11029;
40        public const int WSA_QOS_ESHAPERATEOBJ = 11030;
41        public const int WSA_QOS_RESERVED_PETYPE = 11031;
42    
43        public static string GetErrorCodeName(int retcode)
44        {
45            Type constType = typeof(WinSockErrorCode);
46
47            FieldInfo[] fields = constType.GetFields();
48
49            for (int i = 0; i < fields.Length; i++)
50            {
51                FieldInfo info = fields[i];
52                if (info.FieldType == typeof(int&&
53                    retcode.Equals(info.GetValue(null)))
54                    return info.Name;
55            }

56
57            return "WSA_UNKOWN_ERROR";
58        }

59    }

60}

61
或者如下方式:
  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4
  5namespace AFC.BOM.Constants.Prompt
  6{
  7    public class OCTErrorResultCode
  8    {
  9        private static Dictionary<int,string> OCTResultCode = new Dictionary<int,string>();
 10
 11        /// <summary>
 12        /// 私有构造函数,以防止创建该类的实例
 13        /// </summary>

 14        private OCTErrorResultCode()
 15        
 16        }

 17
 18        /// <summary>
 19        /// 类的构造函数,在类(而不是实例)首次使用时调用,且在类的生命周期中仅调用一次
 20        /// </summary>

 21        static OCTErrorResultCode()
 22        {
 23            if (!InitOCTErrorResultCode())
 24                throw new Exception();
 25        }

 26
 27        /// <summary>
 28        /// 初始化各种操作结果对应的中文信息
 29        /// </summary>
 30        /// <returns></returns>

 31        private static bool InitOCTErrorResultCode()
 32        {
 33            try
 34            {
 35                /*
 36                 * HHHH代码含义    HHHH    说明                 
 37                 * */

 38                OCTResultCode.Add(0x01"无效的消息类型码!");
 39                OCTResultCode.Add(0x02"无效的消息版本 !");
 40                OCTResultCode.Add(0x03"报文格式错误 !");
 41                OCTResultCode.Add(0x04"报文长度无效!");
 42                OCTResultCode.Add(0x05"无效的加密压缩算法!");
 43                OCTResultCode.Add(0x06"通讯MAC错!");
 44                OCTResultCode.Add(0x07"通讯目标节点不可到达!");
 45                OCTResultCode.Add(0x08"通讯超时!");
 46                OCTResultCode.Add(0x09"操作员不存在!");
 47                OCTResultCode.Add(0x0A"操作员口令错误!");
 48                OCTResultCode.Add(0x0B"POS机号不存在!");
 49                OCTResultCode.Add(0x0C"POS机已禁用!");
 50                OCTResultCode.Add(0x0D"SAM卡号不存在!");
 51                OCTResultCode.Add(0x0E"SAM卡号已禁用!");
 52                OCTResultCode.Add(0x12"操作员无权操作SAM卡!");
 53                OCTResultCode.Add(0x13"SAM卡与POS机对应关系错!");
 54                OCTResultCode.Add(0x14"SAM卡尚未签退!");
 55                OCTResultCode.Add(0x15"SAM卡尚未签到!");
 56                OCTResultCode.Add(0x16"上一日充值交易未上送完毕未及时上传交易!");
 57                OCTResultCode.Add(0x1D"无效的参数代码!");
 58                OCTResultCode.Add(0x1E"参数不允许下载!");
 59                OCTResultCode.Add(0x23"其它未定义的错误!");
 60                OCTResultCode.Add(0x24"参数未下载!");
 61                OCTResultCode.Add(0x25"审核数据认证失败!");
 62                OCTResultCode.Add(0x28"程序未升级!");
 63                OCTResultCode.Add(0x51"初始化读卡器通讯端口失败!");
 64                OCTResultCode.Add(0x52"创建SOCKET失败!");
 65                OCTResultCode.Add(0x53"读ISAM卡号失败!");
 66                OCTResultCode.Add(0x54"SOCKET发送失败!");
 67                OCTResultCode.Add(0x55"SOCKET接收失败!");
 68                OCTResultCode.Add(0x56"关闭端口失败!");
 69                OCTResultCode.Add(0x57"签退计算审核数据失败!");
 70                OCTResultCode.Add(0x58"签退SAM复位失败!");
 71                OCTResultCode.Add(0x59"签到认证失败!");
 72                OCTResultCode.Add(0x60"参数下载失败!");
 73                OCTResultCode.Add(0x61"加载读写器驱动库ACC.DLL失败!");
 74                OCTResultCode.Add(0x62"接收无效的消息类型码!");
 75                OCTResultCode.Add(0x63"本地签到数据表为空!");
 76                OCTResultCode.Add(0x64"代码异常!");
 77            }

 78            catch
 79            {
 80                return false;
 81            }

 82
 83            return true;
 84        }

 85
 86        /// <summary>
 87        /// 通过索引来返回错误提示信息
 88        /// </summary>
 89        /// <param name="index">错误索引</param>
 90        /// <returns></returns>

 91        public static string GetOCTResultCodeInfo(int index)
 92        {
 93            try
 94            {
 95                if (OCTResultCode.ContainsKey(index))
 96                    return OCTResultCode[index];                                         
 97            }

 98            catch
 99            {}
100            return "严重错误,不可重试!";
101
102        }

103    }

104}

105

posted @ 2008-02-18 13:35  Simmy.卧龙先生  阅读(454)  评论(0编辑  收藏  举报