public Type GetType(byte[] item)
        {
            TKey key  = KeyExtractor.Extract(item);
            Type type = Types[key];

            return(type);
        }
        public object GetObject(byte[] bytes)
        {
            TKey key = KeyExtractor.Extract(bytes);

            if (key != null && Types.TryGetValue(key, out var foundType) && foundType != null)
            {
                return(_elector.CreateObject(bytes, foundType));
            }

            return(null);
        }