Tengo un AppSetting en web.config.ConfigurationManager.AppSettings convierte " n" en "\ n" ¿por qué?
<add key="key" value="\n|\r"/>
cuando lo leí por ConfigurationManager.AppSettings["key"]
Da "\\ n | r \\". ¿Por qué?
Tengo un AppSetting en web.config.ConfigurationManager.AppSettings convierte " n" en "\ n" ¿por qué?
<add key="key" value="\n|\r"/>
cuando lo leí por ConfigurationManager.AppSettings["key"]
Da "\\ n | r \\". ¿Por qué?
En el depurador, debido a que la barra diagonal inversa es un carácter especial utilizado para elementos como pestañas (\ t) y terminaciones de línea (\ n), debe escaparse mediante el uso de otra barra invertida. Por lo tanto, cualquier texto que contenga un \ real se mostrará como \. Si lo imprime en un archivo o lo usa de cualquier otra manera, encontrará que su cadena solo contiene el uno.
Esto no se ConfigurationManager haciendo nada.
string str = "\n";// means \n
string str1 = @"\n";// means \\n
De AppSettings, parece que al extraer el valor de la clave, se envuelve @ internamente .. Se realiza mediante el compilador no en tiempo de ejecución.
He resuelto el mismo problema con un reemplazo cadena. No
preciosa .. pero funciona!
ConfigurationManager.AppSettings["Key"].Replace("\\n", "\n")
gracias salvado mi día // –
La sintaxis de escape de barra invertida solamente se reconocen en el interior de los literales de cadena por el compilador de C#. Debido a que su cadena se está leyendo desde un archivo XML en tiempo de ejecución, es necesario utilizar compatibles con XML escape (entidades de caracteres) con el fin de incluir a los personajes de la cadena. Por lo tanto, su entrada configuración de la aplicación debe tener el siguiente aspecto:
<add key="key" value="&x10;|&x13;"/>
Porque 10 y 13 son los valores hexadecimales para el avance de línea y retorno de carro, respectivamente.
Como dijo cjk, el depurador está insertando la barra adicional para indicar que está viendo una barra literal y no una secuencia de escape.
Su pregunta no coincide con el título correctamente ... – cjk
@cjk: ¿por qué u piensa así? por favor lea la pregunta cuidadosamente. –
Lo actualizaste ahora. ¿Está en el depurador que está viendo '\\ n | \\ r'? – cjk