Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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));
        }