Разбор строки из 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=&quot;abcdefg&quot;" name="CS"/>
  </connectionStrings>

Вы можете использовать экранирование символов XML. Например, пробел & # x20; Таким образом вы можете избежать любого персонажа. Общая форма & # xhhhh; или & #nnnn; где hhhh - шестнадцатеричный, а nnnn - десятичный.

Здесь также перечислены "горячие клавиши": https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

Другие вопросы по тегам