Como posso usar o Unity com classes internas?

Eu tenho um aplicativo de API da Web e estou usando o Unity para injeção de dependência. O aplicativo usa uma biblioteca que contém um IDoStuff da interface e uma classe que implementa a interface:

internal interface IDoStuff
{
    void DoSomething();
}

internal class DoStuff : IDoStuff
{
    public void DoSomething()
    {
        // Do some stuff
    }
}

A biblioteca também tem uma classe pública que precisa fazer coisas:

public class NeedToDoStuff
{
    private IDoStuff doStuff;

    public NeedToDoStuff()
    {
        this.doStuff = new DoStuff();
    }

    internal NeedToDoStuff(IDoStuff doStuff)
    {
        this.doStuff = doStuff;
    }

    void PleaseDoStuff()
    {
        doStuff.DoSomething();
    }
}

Gostaria de usar o Unity para criar uma instância NeedToDoStuff no meu controlador e também ser responsável por criar a classe DoStuff internamente, em vez de o construtor chamar diretamente de novo. No entanto, a única maneira de ver isso é tornar públicas a interface IDoStuff e a classe DoStuff, o que me parece errado. Parece errado, pois esses são detalhes de implementação e são relevantes apenas na própria biblioteca. Entendo que, com a inversão de controle, você está permitindo que o aplicativo de nível superior faça escolhas sobre suas implementações subjacentes por meio de uma configuração de algum tipo, mas isso deve significar que não há mais necessidade de etc interno?