Injeção de dependência para resolver dependências circulares

Exemplo:

class MyClass
{
    Composition m_Composition;

    void MyClass()
    {
        m_Composition = new Composition( this );
    }
}

Estou interessado em usar injeção de dependência aqui. Então terei que refatorar o construtor para algo como:

void MyClass( Composition composition )
{
    m_Composition = composition;
}

No entanto, agora tenho um problema, já que oComposition-object depende do objeto do tipoMyClass que acabou de ser criado.

Um contêiner de dependência pode resolver isso? Isso deveria ser feito?
Ou é apenas um design ruim desde o início?

questionAnswers(1)

yourAnswerToTheQuestion