respuesta de Microsoft es simplemente:
Aunque el Microsoft .NET Framework incluye la clase XmlTextWriter, que es una implementación de la clase XmlWriter, en la versión 2.0, se recomienda que utilice el método Create para crear nuevos Objetos XmlWriter. El método Create le permite especificar las características para admitir en el objeto XmlWriter creado, y también le permite aprovechar al máximo las nuevas características introducidas en la versión 2.0.
pero esa respuesta deja de lado la diferencia más importante:
Si llama 'nuevo XMLTextReader' que se encuentra en el modo 'v1compat', lo que hará que tenga el comportamiento de modalidad muy mala en algunos casos, potencialmente lo que lleva a OutOfMemoryExceptions! Vea Why is my new XmlTextReader(stream) reading in many megabytes into memory rather than streaming properly? para más sobre eso.
RECOMENDACIÓN: A menos que realmente necesite el comportamiento de .NET 1.1, entonces NUNCA debe llamar a 'new XmlTextReader', en su lugar siempre llame a 'XmlReader.Create'.
Gracias, me ayudó mucho. – Tarik
Esa no parece ser la única diferencia, me encontré con un problema donde ninguna configuración podría hacer que XmlReader.Create funcione, pero XmlTextReader funciona bien: http://stackoverflow.com/questions/34257204/different-behaviour- entre-nuevo-xmltextreader-y-xmlreader-create –