При регистрации открытого универсального метода используйте неуниверсальный метод:
Component.For(typeof(IRepository<>))...
При разрешении с помощью UsingFactoryMethod
вы можете иметь доступ к запрашиваемому типу, поэтому вы можете передать тип в GetRepository
и разрешить хранилище на основе типа (объект System.Type), который вы передаете.
Как знаменатель, я должен сказать, что нахожу ваш дизайн довольно необычным. Чаще всего хранилище содержит ссылку на контекст данных, а не наоборот. Возможно, вы захотите еще раз взглянуть на дизайн?