0fea0eec5e8bad242e797bd1e058597250a00755.svn-base 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. using System;
  2. using System.Data;
  3. namespace Core.Mes.IBaseInterface
  4. {
  5. /// <summary>
  6. /// 消息原型
  7. /// </summary>
  8. [Serializable]
  9. public struct CallingMessage
  10. {
  11. //== 服务名
  12. public string ServerName;
  13. //== 程序集名
  14. public string AssemblyName;
  15. //== 类名
  16. public string ClassName;
  17. //== 方法名
  18. public string MethodName;
  19. //== 参数数组
  20. public object[] args;
  21. //== 网络传输方式
  22. public NetWorkTransType TransType;
  23. //== 服务类型
  24. public MesServerType ServerType;
  25. //== 访问类型
  26. public VisitType visitType;
  27. public RequestType requestType;
  28. public CallingMessage(string ServerName, string AssemblyName, string ClassName, string MethodName, object[] args)
  29. {
  30. this.ServerName = ServerName;
  31. //== 常用
  32. this.AssemblyName = AssemblyName;
  33. this.ClassName = ClassName;
  34. this.MethodName = MethodName;
  35. this.args = args;
  36. //== 特殊
  37. this.TransType = NetWorkTransType.Remoting;
  38. this.ServerType = MesServerType.IComponentContainServer;
  39. this.visitType = VisitType.Method;
  40. this.requestType = RequestType.DirectReturn;
  41. }
  42. }
  43. /// <summary>
  44. /// 网络传输方式枚举
  45. /// </summary>
  46. public enum NetWorkTransType
  47. {
  48. Remoting,
  49. XmlWebService
  50. }
  51. /// <summary>
  52. /// 服务类型
  53. /// </summary>
  54. public enum MesServerType
  55. {
  56. IComponentContainServer,
  57. MesSystemBaseServer
  58. }
  59. /// <summary>
  60. /// 访问类型
  61. /// </summary>
  62. public enum VisitType
  63. {
  64. Method,
  65. Property
  66. }
  67. /// <summary>
  68. /// 请求方式
  69. /// </summary>
  70. public enum RequestType
  71. {
  72. DirectReturn,
  73. DirectBroakcast,
  74. AfterHandlerBroakcast
  75. }
  76. /// <summary>
  77. /// 用户验证信息
  78. /// </summary>
  79. [Serializable]
  80. public struct ValidateInfo
  81. {
  82. public string ValidateGuid;
  83. public string LoginID;
  84. public ValidateInfo(string validateGuid, string loginID)
  85. {
  86. this.ValidateGuid = validateGuid;
  87. this.LoginID = loginID;
  88. }
  89. }
  90. /// <summary>
  91. /// 存储于服务端的客户信息
  92. /// </summary>
  93. [Serializable]
  94. public struct UserInfo
  95. {
  96. public string ValidateGuid;
  97. public string UserName;
  98. public string LoginID; //登录ID
  99. public string UserID; //用户ID
  100. public string UserBc; //班次
  101. public string UserBb; //班别
  102. public string UserRz; //工作制
  103. public string UserDepID; //部门
  104. public string UserDepName;
  105. public string UserRoleID; //角色
  106. public string UserRoleName;
  107. public System.IO.Stream MenuConfigStream;
  108. }
  109. /// <summary>
  110. /// 客户端调用服务端的返回对象,包括错误代码、错误信息和返回对象实体。
  111. /// 在Web传输中,返回对象实体如果是DataSet类型,将存入RealDataSet中。
  112. /// </summary>
  113. [Serializable]
  114. public struct ReturnObject
  115. {
  116. //== 错误代码
  117. public int ErrCode;
  118. //== 错误信息
  119. public string ErrMessage;
  120. //== 返回对象实体
  121. //private object m_RealObject;
  122. //private bool RealObjcetIsDataSet;
  123. public object RealObject;
  124. /*
  125. public object RealObject
  126. {
  127. get
  128. {
  129. if (RealObjcetIsDataSet)
  130. {
  131. byte[] buffer = Core.Mes.Common.Utility.Decompress(m_RealObject as byte[]);
  132. DataSet ds = Core.Mes.Common.Utility.ReSerializable(buffer);
  133. return ds;
  134. }
  135. else
  136. {
  137. return m_RealObject;
  138. }
  139. }
  140. set
  141. {
  142. if (value is DataSet)
  143. {
  144. byte[] buffer = Core.Mes.Common.Utility.SerializeDataSet(value as DataSet);
  145. buffer = Core.Mes.Common.Utility.Compress(buffer);
  146. m_RealObject = buffer;
  147. }
  148. else
  149. {
  150. m_RealObject = value;
  151. }
  152. }
  153. }
  154. */
  155. //== 用于Web传输时存放DataSet类型的返回实体
  156. public DataSet RealDataSet;
  157. public ReturnObject(object RealObject)
  158. {
  159. /*
  160. if (RealObject is DataSet)
  161. {
  162. byte[] buffer = Core.Mes.Common.Utility.SerializeDataSet(RealObject as DataSet);
  163. buffer = Core.Mes.Common.Utility.Compress(buffer);
  164. m_RealObject = buffer;
  165. RealObjcetIsDataSet = true;
  166. }
  167. else
  168. {
  169. m_RealObject = RealObject;
  170. RealObjcetIsDataSet = false;
  171. }
  172. */
  173. this.RealObject = RealObject;
  174. this.ErrCode = 0;
  175. this.ErrMessage = "";
  176. this.RealDataSet = null;
  177. }
  178. public ReturnObject(object RealObject, string ErrMessage)
  179. {
  180. /*
  181. if (RealObject is DataSet)
  182. {
  183. byte[] buffer = Core.Mes.Common.Utility.SerializeDataSet(RealObject as DataSet);
  184. buffer = Core.Mes.Common.Utility.Compress(buffer);
  185. m_RealObject = buffer;
  186. RealObjcetIsDataSet = true;
  187. }
  188. else
  189. {
  190. m_RealObject = RealObject;
  191. RealObjcetIsDataSet = false;
  192. }
  193. */
  194. this.RealObject = RealObject;
  195. this.ErrCode = 1;
  196. this.ErrMessage = ErrMessage;
  197. this.RealDataSet = null;
  198. }
  199. public ReturnObject(object RealObject, int ErrCode)
  200. {
  201. /*
  202. if (RealObject is DataSet)
  203. {
  204. byte[] buffer = Core.Mes.Common.Utility.SerializeDataSet(RealObject as DataSet);
  205. buffer = Core.Mes.Common.Utility.Compress(buffer);
  206. m_RealObject = buffer;
  207. RealObjcetIsDataSet = true;
  208. }
  209. else
  210. {
  211. m_RealObject = RealObject;
  212. RealObjcetIsDataSet = false;
  213. }
  214. */
  215. this.RealObject = RealObject;
  216. this.ErrCode = ErrCode;
  217. this.ErrMessage = "";
  218. this.RealDataSet = null;
  219. }
  220. public ReturnObject(object RealObject, int ErrCode, string ErrMessage)
  221. {
  222. /*
  223. if (RealObject is DataSet)
  224. {
  225. byte[] buffer = Core.Mes.Common.Utility.SerializeDataSet(RealObject as DataSet);
  226. buffer = Core.Mes.Common.Utility.Compress(buffer);
  227. m_RealObject = buffer;
  228. RealObjcetIsDataSet = true;
  229. }
  230. else
  231. {
  232. m_RealObject = RealObject;
  233. RealObjcetIsDataSet = false;
  234. }
  235. */
  236. this.RealObject = RealObject;
  237. this.ErrCode = ErrCode;
  238. this.ErrMessage = ErrMessage;
  239. this.RealDataSet = null;
  240. }
  241. }
  242. public interface ICommon
  243. {
  244. ReturnObject MethodHandler(CallingMessage message, ValidateInfo info);
  245. }
  246. }