private static bool CanReadTypeCore(Type type)
    {
        bool isCan = type.GetCustomAttributes(typeof(ProtoContractAttribute)).Any();
        if (!isCan && typeof(IEnumerable).IsAssignableFrom(type))
        {
            var temp = type.GetGenericArguments().FirstOrDefault();
            isCan = temp.GetCustomAttributes(typeof(ProtoContractAttribute)).Any();
        }
        return isCan;
    }