Разбор строки из app.config с экранированными символами
Это действительно глупый вопрос, но я сейчас очень расстроен.
У меня есть app.config, который хранит учетные данные пользователя для SQL Server.
Таким образом, имя пользователя читатель, а пароль "abcdefg".
Когда я пытаюсь выполнить вставку сейчас, я получаю это исключение:
Формат строки инициализации не соответствует спецификации, начиная с индекса 138.
Когда я изменяю учетные данные на пользователя, у которого нет специальных символов, которые должны быть экранированы, это работает как шарм.
Кто-нибудь знает, что это может быть?
Строка подключения, которая затирается во время сеанса отладки:
Data Source=MACHINE\\SQLSERVER;Initial Catalog=DbName;Connect Timeout=300;Application Name=application;User ID=reader;Password=\"abcdefg\"
2 ответа
Вы можете избежать двойных кавычек в поле пароля с помощью "
Так что connectionStrings будет выглядеть так:
<connectionStrings>
<add connectionString="Data Source=MACHINE\\SQLSERVER;Initial Catalog=DbName;Connect Timeout=300;Application Name=application;User ID=reader;Password="abcdefg"" name="CS"/>
</connectionStrings>
Вы можете использовать экранирование символов XML. Например, пробел & # x20; Таким образом вы можете избежать любого персонажа. Общая форма & # xhhhh; или & #nnnn; где hhhh - шестнадцатеричный, а nnnn - десятичный.
Здесь также перечислены "горячие клавиши": https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references