C # tipo de referência de seqüência de caracteres?

Eu sei que "string" em c # é um tipo de referência. Isso está no MSDN. No entanto, este código não funciona como deveria:

class Test
{
    public static void Main()
    {
        string test = "before passing";
        Console.WriteLine(test);
        TestI(test);
        Console.WriteLine(test);
    }

    public static void TestI(string test)
    {
        test = "after passing";
    }
}

A saída deve ser "before passing" "after passing", pois estou passando a string como um parâmetro e sendo um tipo de referência, a segunda instrução de saída deve reconhecer que o texto foi alterado no método TestI. No entanto, eu recebo "antes de passar" "antes de passar" fazendo parecer que é passado por valor não por ref. Eu entendo que as strings são imutáveis, mas não vejo como isso explicaria o que está acontecendo aqui. o que estou perdendo? Obrigado.

questionAnswers(10)

yourAnswerToTheQuestion