public static IReflectorMetadataProvider Merge(this IReflectorMetadataProvider obj, IDictionary <int, object> data)
        {
            var accesor = obj.GetAccesor();

            foreach (var kv in data)
            {
                var code = kv.Key;
                var type = accesor.GetPropertyType(code);
                accesor.SetValue(obj, code, BinaryConvert.ConvertTo(type, kv.Value));
            }

            return(obj);
        }
        public static T Merge <T>(this T obj, IDictionary <string, object> data)
            where T : IReflectorMetadataProvider
        {
            var accesor = obj.GetAccesor();

            foreach (var kv in data)
            {
                var code = accesor.GetPropertyCode(kv.Key);
                var type = accesor.GetPropertyType(code);
                accesor.SetValue(obj, code, BinaryConvert.ConvertTo(type, kv.Value));
            }

            return(obj);
        }