static void TestUser() { var _role = new RoleTest(); _role.RoleId = 2; _role.RoleName = "admin"; var roleBuffer = _role.Write(); var _role1 = RoleTest.Read(roleBuffer, 0); var user = new UserTest(); user.Bool = false; user.boolList = new List <bool>() { false, true }; user.Char = 'A'; user.floatList = new List <float>() { 12.1F, 12.1F }; user.Id = 1; user.IdList = new List <int>() { 1, 2, 3 }; user.StringList = new List <string>() { "SS", "ERC" }; user.UInt16 = 12; user.UShort = 2342; var role = new RoleTest(); role.RoleId = 2; role.RoleName = "admin"; role.Id = -122334; role.Ids = new List <int>() { Int24.MiniValue, Int24.MaxVlaue, 0 }; user.Role = role; var roleList = new List <RoleTest>(); var role1 = new RoleTest(); role1.RoleId = 3; role1.Id = 1222; role1.RoleName = "user1"; roleList.Add(role1); var role2 = new RoleTest(); role2.RoleId = 4; role2.Id = -3737; role2.RoleName = "user2"; roleList.Add(role2); roleList.Add(role); user.RoleList = roleList; var buffer = user.Write(); var _user = UserTest.Read(buffer, 0); ; }
public static UserTest Read(byte[] buffer, int offset) { var msg = new UserTest(); msg.UInt16 = BitConverter.ToUInt16(buffer, offset); offset += 2; msg.Char = (Char)buffer[offset]; offset++; msg.Bool = buffer[offset] == 1; offset++; msg.Int16 = BitConverter.ToInt16(buffer, offset); offset += 2; msg.UShort = BitConverter.ToUInt16(buffer, offset); offset += 2; msg.Id = BitConverter.ToUInt16(buffer, offset); offset += 2; var countIdList = buffer[offset]; offset++; var listIdList = new List <int>(); for (var i = 0; i < countIdList; i++) { var item = BitConverter.ToUInt16(buffer, offset); offset += 2; listIdList.Add(item); } msg.IdList = listIdList; var countboolList = buffer[offset]; offset++; var listboolList = new List <bool>(); for (var i = 0; i < countboolList; i++) { var item = buffer[offset] == 1; offset++; listboolList.Add(item); } msg.boolList = listboolList; var countIntList = buffer[offset]; offset++; var listIntList = new List <int>(); for (var i = 0; i < countIntList; i++) { var item = BitConverter.ToInt32(buffer, offset); offset += 4; listIntList.Add(item); } msg.IntList = listIntList; var countfloatList = buffer[offset]; offset++; var listfloatList = new List <float>(); for (var i = 0; i < countfloatList; i++) { var item = BitConverter.ToSingle(buffer, offset); offset += 4; listfloatList.Add(item); } msg.floatList = listfloatList; var countStringList = buffer[offset]; offset++; var listStringList = new List <string>(); for (var i = 0; i < countStringList; i++) { var strLength = buffer[offset]; offset++; var item = StringEncoding.GetString(buffer, offset, strLength); offset += strLength; listStringList.Add(item); } msg.StringList = listStringList; var RoleLength = buffer[offset]; offset++; if (RoleLength == 0) { msg.Role = null; } else { var _buffer = new ArraySegment <byte>(buffer, offset, RoleLength).ToArray(); msg.Role = RoleTest.Read(_buffer, 0); offset += RoleLength; } var countRoleList = buffer[offset]; offset++; var listRoleTestList = new List <RoleTest>(); for (var i = 0; i < countRoleList; i++) { var _RoleTestLength = buffer[offset]; offset++; if (_RoleTestLength == 0) { listRoleTestList.Add(null); } else { var _buffer = new ArraySegment <byte>(buffer, offset, _RoleTestLength).ToArray(); listRoleTestList.Add(RoleTest.Read(_buffer, 0)); offset += _RoleTestLength; } } msg.RoleList = listRoleTestList; return(msg); }