Разбор строки подключения - PullRequest
3 голосов
/ 15 декабря 2011

Существует ли стандартная библиотека или фрагмент кода для получения значения со строкой подключения, подобной этой?

string connstr = "DataServiceUrl=http://localhost/foo;" + 
        "RemoteServerConnection={server=http://localhost/foo2;interface=0.0.0.0;};" + 
        "publisherport=1234;StatisticsURL=http://localhost/foo3";

Все свойство внутреннего соединения является своего рода циклом. Я хотел бы получить конкретные значения на основе ключа.

Вот ответ Джона, которого я использовал:

System.Data.Odbc.OdbcConnectionStringBuilder builder = new System.Data.Odbc.OdbcConnectionStringBuilder(); 
builder.ConnectionString = this.ConnectionString;
MessageBox.Show(builder["RemoteServerConnection"]);

1 Ответ

5 голосов
/ 15 декабря 2011

Замена "{" и "}" на (") дает хитрость:

string conn = "DataServiceUrl=http://localhost/foo;" +
    "RemoteServerConnection={server=http://localhost/foo2;interface=0.0.0.0;};" +
    "publisherport=1234;StatisticsURL=http://localhost/foo3";

var builder = new System.Data.Common.DbConnectionStringBuilder();
builder.ConnectionString = conn.Replace("{", "\"").Replace("}", "\"");
var keys = builder.Keys;
var values = builder.Values;
string remoteServerConnection = (string)builder["RemoteServerConnection"];
...