I have an adminhtml custom grid that has a product_id that I need to join the product name to using this product id. I need to use dependency injection to load the attribute manager and store manager so I can do this. Here is the code in my Collection. I have marked ** will not load by the 2 classes I need which when I try to load the page, make it error out. If I comment out the lines that inject the 2 classes, the grid loads fine:

        public function __construct(
        \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory,
        \Psr\Log\LoggerInterface $logger,
        \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
        \Magento\Framework\Event\ManagerInterface $eventManager,
        \Magento\Framework\DB\Adapter\AdapterInterface $connection = null,
        \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null,
        \Magento\Eav\Api\AttributeRepositoryInterface $attrRepoInt, // ** will not load
        \Magento\Store\Model\StoreManagerInterface $storeMan // ** will not load
    ) {
        $this->_eventManager = $eventManager;
        $this->_attrRepoInt = $attrRepoInt;
        $this->_storeMan = $storeMan;
        parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource);
    }

So the idea is that if I can get access to these 2 classes, then my join code would be like this:

        public function joinProductNames()
    {
        $productNameAttributeId = $this->_attrRepoInt->get('catalog_product', 'name');
        $storeid = $this->_storeMan->getStore();
        // join product entity varchar where attributeid = $productNameAttributeId
        // and entity_id to product_id of my table, where store id = $storeid
        return $this;
    }

Then in the Grid/Collection I can just call this, I have done this fine with other joins but they did not require access to other classes in the Collection:

        protected function _initSelect()
    {
        parent::_initSelect();
        $this->joinProductNames();
        return $this;
    }

So my question is how do I get those 2 classes to load? Or how can I get access to product name via product id some other way? My preference is to join in the grid so that it has better performance rather than making a column render.