A inverção de dependência, é aplicada entre a camda Application e Infra.Data, onde, Infra.Data depende de Application, apesar da camada Application buscar os dados no banco de dados pela camada de Infra.Data.
Na camada Application, vamos registar as Interfaces de repositorios (IClienteRepository) que será abstraida lá na camada de Infra.data. Na camada Infra.Data, vamos criar a classe (ClienteRepository) que irá referenciar a interface contida em Application (IClienteRepository). Na camada Infra.CrossCutting.IoC, vamos registrar o serviço das duas de cima:
services.AddScoped<IClienteRepository, ClienteRepository>();
Com isso, estamos fazendo com que a camada de Infra.Data dependa de Application onde está nossas abstrações.