protected override uint FieldToPack(SGIP_Field Field, byte[] Pack, uint Offset) { if (Field.IsProperty("SMMessageLength")) { if (m_nMessageCoding == SGIP_MessageCodings.Ucs2) { m_nSMMessageLength = (uint)Encoding.BigEndianUnicode.GetByteCount(m_sMessageContent); } else if (m_nMessageCoding == SGIP_MessageCodings.Gbk) { m_nSMMessageLength = (uint)Encoding.GetEncoding("gb2312").GetByteCount(m_sMessageContent); } else { m_nSMMessageLength = (uint)Encoding.ASCII.GetByteCount(m_sMessageContent); } Field.ProInfo.SetValue(this, m_nSMMessageLength, null); Field.Build(); } else if (Field.IsProperty("MessageContent")) { //Field.ProAttribute.Length = (int)(System.Text.Encoding.Default.GetByteCount(null == m_sMessageContent ? "" : m_sMessageContent)); byte[] buf; if (m_nMessageCoding == SGIP_MessageCodings.Ucs2) { buf = Encoding.BigEndianUnicode.GetBytes(m_sMessageContent); } else if (m_nMessageCoding == SGIP_MessageCodings.Gbk) { buf = Encoding.GetEncoding("gb2312").GetBytes(m_sMessageContent); } else { buf = Encoding.ASCII.GetBytes(m_sMessageContent); } Array.Copy(buf, 0, Pack, Offset, buf.Length); Field.ProAttribute.Length = buf.Length; return((uint)buf.Length); } else if (Field.IsProperty("ChargeNumber")) { if (m_sChargeNumber != null && m_sChargeNumber.StartsWith("0000") == false && m_sChargeNumber.Length > 0 && m_sChargeNumber.StartsWith("86") == false) { m_sChargeNumber = "86" + m_sChargeNumber; } } else if (Field.IsProperty("UserNumber")) { if (m_sUserNumber.StartsWith("86") == false) { m_sUserNumber = "86" + m_sUserNumber; } } return(base.FieldToPack(Field, Pack, Offset)); }
protected override uint PackToField(SGIP_Field Field, byte[] Pack, uint Offset) { if (Field.IsProperty("MessageContent")) { //Field.ProAttribute.Length = (int)this.m_nSMMessageLength; if (m_nSMMessageLength <= 0) { m_sMessageContent = ""; Field.ProAttribute.Length = 0; } else { byte[] buf = new byte[m_nSMMessageLength]; Array.Copy(Pack, Offset, buf, 0, m_nSMMessageLength); if (m_nMessageCoding == SGIP_MessageCodings.Ucs2) { m_sMessageContent = Encoding.BigEndianUnicode.GetString(buf, 0, buf.Length); } else if (m_nMessageCoding == SGIP_MessageCodings.Gbk) { m_sMessageContent = Encoding.GetEncoding("gb2312").GetString(buf, 0, buf.Length); } else { m_sMessageContent = Encoding.ASCII.GetString(buf, 0, buf.Length); } Field.ProAttribute.Length = (int)m_nSMMessageLength; } Field.Build(); return((uint)Field.ProAttribute.Length); } return(base.PackToField(Field, Pack, Offset)); }
protected override uint PackToField(SGIP_Field Field, byte[] Pack, uint Offset) { if (Field.IsProperty("MessageContent")) { //Field.ProAttribute.Length = (int)m_nSMMessageLength; byte[] buf = new byte[m_nSMMessageLength]; Array.Copy(Pack, Offset, buf, 0, m_nSMMessageLength); if (m_nMessageCoding == SGIP_MessageCodings.Ucs2) { m_sMessageContent = Encoding.BigEndianUnicode.GetString(buf, 0, buf.Length); } else if (m_nMessageCoding == SGIP_MessageCodings.Gbk) { m_sMessageContent = Encoding.GetEncoding("gb2312").GetString(buf, 0, buf.Length); } else { m_sMessageContent = Encoding.ASCII.GetString(buf, 0, buf.Length); } Field.ProAttribute.Length = buf.Length; Field.Build(); return (uint)buf.Length; } return base.PackToField(Field, Pack, Offset); }
protected override uint FieldToPack(SGIP_Field Field, byte[] Pack, uint Offset) { if (Field.IsProperty("SMMessageLength")) { if (m_nMessageCoding == SGIP_MessageCodings.Ucs2) { m_nSMMessageLength = (uint)Encoding.BigEndianUnicode.GetByteCount(m_sMessageContent); } else if (m_nMessageCoding == SGIP_MessageCodings.Gbk) { m_nSMMessageLength = (uint)Encoding.GetEncoding("gb2312").GetByteCount(m_sMessageContent); } else { m_nSMMessageLength = (uint)Encoding.ASCII.GetByteCount(m_sMessageContent); } Field.ProInfo.SetValue(this, m_nSMMessageLength, null); Field.Build(); } else if (Field.IsProperty("MessageContent")) { //Field.ProAttribute.Length = (int)(System.Text.Encoding.Default.GetByteCount(null == m_sMessageContent ? "" : m_sMessageContent)); byte[] buf; if (m_nMessageCoding == SGIP_MessageCodings.Ucs2) { buf = Encoding.BigEndianUnicode.GetBytes(m_sMessageContent); } else if (m_nMessageCoding == SGIP_MessageCodings.Gbk) { buf = Encoding.GetEncoding("gb2312").GetBytes(m_sMessageContent); } else { buf = Encoding.ASCII.GetBytes(m_sMessageContent); } Array.Copy(buf, 0, Pack, Offset, buf.Length); Field.ProAttribute.Length = buf.Length; return (uint)buf.Length; } else if (Field.IsProperty("ChargeNumber")) { if (m_sChargeNumber != null && m_sChargeNumber.StartsWith("0000") == false && m_sChargeNumber.Length > 0 && m_sChargeNumber.StartsWith("86") == false) { m_sChargeNumber = "86" + m_sChargeNumber; } } else if (Field.IsProperty("UserNumber")) { if (m_sUserNumber.StartsWith("86") == false) { m_sUserNumber = "86" + m_sUserNumber; } } return base.FieldToPack(Field, Pack, Offset); }