Editar uma linha específica de um arquivo de texto em c #

Eu tenho dois arquivos de texto, Source.txt e Target.txt. A fonte nunca será modificada e contém N linhas de texto. Então, eu quero excluir uma linha específica de texto em Target.txt, e substituir por uma linha específica de texto do Source.txt, eu sei o número de linha que eu preciso, na verdade, é o número da linha 2, ambos os arquivos.

Eu tenho algo assim:

string line = string.Empty;
int line_number = 1;
int line_to_edit = 2;

using (StreamReader reader = new StreamReader(@"C:\source.xml"))
{
    using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))
    {
        while ((line = reader.ReadLine()) != null)
        {
            if (line_number == line_to_edit)
            {
                writer.WriteLine(line);
            } 

            line_number++;
        }
    }
}

Mas quando eu abro o Writer, o arquivo de destino é apagado, ele escreve as linhas, mas, quando aberto, o arquivo de destino contém apenas as linhas copiadas, o resto se perde.

O que eu posso fazer?

questionAnswers(5)

yourAnswerToTheQuestion