public static byte[] Pack(object param) { var list = (System.Collections.IDictionary)param; var type = param.GetType(); var allArgs = type.GenericTypeArguments; var innerType = allArgs[0]; var innerType2 = allArgs[1]; var arry = new List <byte[]>(); var len = 0; var enumerator = list.GetEnumerator(); while (enumerator.MoveNext()) { var key = enumerator.Key; var value = enumerator.Value; var keyData = FieldFormat.Pack(innerType, key); var valueData = FieldFormat.Pack(innerType2, value); arry.Add(keyData); arry.Add(valueData); len += keyData.Length + valueData.Length; } return(arry.JoinData(len)); }
public static byte[] Pack2(Type type, object obj) { var typeInfo = type.GetReflectionInfo(); var arry = new List <byte[]>(); var len = 0; for (int i = 0; i < typeInfo.Properties.Count; i++) { var p = typeInfo.Properties[i]; var value = typeInfo.ReflectionInfo.GetValue(obj, p.Name); var d = FieldFormat.Pack(p.PropertyType, value); arry.Add(d); len += d.Length; } return(arry.JoinData(len)); }
public static byte[] Pack(Type type, object obj) { var typeInfo = type.GetReflectionInfo(); var arry = new List <byte[]>(); var len = 0; foreach (var p in typeInfo.Properties) { var value = typeInfo.ReflectionInfo.GetValue(obj, p.Name); var d = FieldFormat.Pack(p.PropertyType, value); //body.AddRange(d); arry.Add(d); len += d.Length; } //return body.ToArray(); return(arry.JoinData(len)); }
public static byte[] Pack(Type type, object obj) { var typeInfo = type.GetReflectionInfo(); byte[] data = new byte[0]; var len = 0; for (int i = 0; i < typeInfo.Properties.Count; i++) { var p = typeInfo.Properties[i]; var value = typeInfo.ReflectionInfo.GetValue(obj, p.Name); var d = FieldFormat.Pack(p.PropertyType, value); len += d.Length; Array.Resize(ref data, len); data.Append(len - d.Length, d); } return(data); }
public static byte[] Pack(object param) { var list = (System.Collections.IEnumerable)param; var body = new List <byte>(); var type = param.GetType(); var innerType = type.GenericTypeArguments[0]; var arry = new List <byte[]>(); var len = 0; foreach (var obj in list) { var data = FieldFormat.Pack(innerType, obj); //body.AddRange(data); arry.Add(data); len += data.Length; } //return body.ToArray(); return(arry.JoinData(len)); }