El otro día un exalumno me preguntaba si había alguna forma amigable de sustituir los caracteres no válidos en un texto para que éstos puedan ser integrados como parte de un documento XML.
Después de revisar todo el trabajo que había realizado, del cual la mayoría había sido extraído de internet, noté que le estaba dando bastantes vueltas al tema siendo algo tan simple como una sola línea de código.
Supongamos que tenemos la siguiente descripción:
El auto <de Juan & Rosy> es llamado "el volador"
Y queremos asignarla al atributo description del siguiente elemento:
<object description="" />
La solución es sencilla, utilicemos la función Escape de la clase SecurityElement que encontramos en el espacio de nombres System.Security, el resultado será el siguiente:
El auto <de Juan & Rosy> es llamado "el volador"
Este último texto puede ser asignado sin problemas al atributo.
Como puedes ver es muy sencillo, no hay que darle tantas vueltas al tema y así te podrás quitar de muchos dolores de cabeza y operaciones sobre un objeto String.