public Tuple <N事务, object> 解码(byte[] 数据) { var __解码 = new H字段解码(数据); var __消息头 = __解码.解码字节数组(消息头长度); var __功能码 = __解码.解码Int16(); if (!报文字典.ContainsKey(__功能码)) { throw new ApplicationException(string.Format("功能码无效: {0}", __功能码)); } var __发方事务 = __解码.解码Int32(); var __收方事务 = __解码.解码Int32(); var __负载数据 = __解码.解码字节数组(__解码.剩余字节数); var __负载 = 解码(__功能码, __负载数据); var __事务 = new N事务 { 发方事务 = __发方事务, 收方事务 = __收方事务, 功能码 = __功能码.ToString("X4") }; if (通道字典 != null && 通道字典.ContainsKey(__功能码)) { __事务.通道标识 = 通道字典[__功能码]; } return(new Tuple <N事务, object>(__事务, __负载)); }
public virtual int 解码(byte[] 数据) { var __解码 = new H字段解码(数据); __解码.解码字节数组(6); //6为消息头标识\消息头长度\功能标识的长度 这些已无需解码 this.发方事务标识 = __解码.解码Int32(); this.收方事务标识 = __解码.解码Int32(); //this.注册标识 = __解码.解码Int32(); 解码消息内容(__解码); return(__解码.解码字节数); }
public Tuple <N事务, object> 解码(byte[] __数据) { var __解码 = new H字段解码(__数据); var __消息头 = __解码.解码字节数组(消息头长度); var __发方事务 = __解码.解码Int32(); var __收方事务 = __解码.解码Int32(); var __功能码长度 = __解码.解码Int16(); var __功能码 = __解码.解码UTF8(__功能码长度); var __负载 = 解码(__功能码, __解码.解码字节数组(__解码.剩余字节数)); var __事务 = new N事务 { 发方事务 = __发方事务, 收方事务 = __收方事务, 功能码 = __功能码 }; if (通道字典 != null && 通道字典.ContainsKey(__事务.功能码)) { __事务.通道标识 = 通道字典[__事务.功能码]; } return(new Tuple <N事务, object>(__事务, __负载)); }
public int 解码(byte[] 数据) { var __解码 = new H字段解码(数据); 验证通过 = __解码.解码字节() == 0; 用户名 = __解码.解码字节数组(20).ToUTF16(); if (验证通过) { 角色 = __解码.解码Int32(); } else { 回复信息长度 = __解码.解码Int16(); 回复信息描述 = __解码.解码字节数组(回复信息长度).ToUTF16(); } return(__解码.解码字节数); }