Я пытаюсь проанализировать строку подключения и извлечь значения для использования в коде.Проблема в том, что одно из значений в моей строке соединений имеет символ =
.
Вот код, который у меня есть
private void Parse(string connectionString)
{
var components = connectionString.Split(';');
foreach (var component in components)
{
if (string.IsNullOrEmpty(component)) continue;
var fieldValuePair = component.Trim().Split('=');//Problematic? Don't know how to fix!
var field = fieldValuePair[0].ToLower();
var value = fieldValuePair[1];
switch (field)
{
case "url":
_serverUrl = value;
break;
case "authcode":
_authcode = value;
break;
default: throw new InvalidOperationException($"{field} Value is unknown in connection settings");
}
}
}
Проблема в том, что этот код работает во всех случаях, кроме случаев, когда в коде авторизации есть =.
Таким образом, эта строка подключения не дает правильных данных.
<add name="ServerAuthCodeString" connectionString="url=https://devunifiedinterface.appstore.com; authCode=mQLw/OWghN0s4jQhBso7o68/KGsLnzwlWux2cnv5QYu=" />
В результате я получаю
_authcode = mQLw/OWghN0s4jQhBso7o68/KGsLnzwlWux2cnv5QYu //Missing = at the end
Мне нужно
_authcode = mQLw/OWghN0s4jQhBso7o68/KGsLnzwlWux2cnv5QYu=
Да, есть вопрос который говорит о соединительных строках.Однако ответы по-прежнему не решают проблему со знаком =
.
Например, этот комментарий специально говорит об этом.
SqlConnectionStringBuilder
не работает для меня.Если я передаю в свой connectionString, он жалуется, что URL-адрес ключевого слова не vaid.