解析连接字符串

dav*_*118 3 c# connection-string string-parsing

是否有标准库或代码片段来获取具有这样的连接字符串的值?

string connstr = "DataServiceUrl=http://localhost/foo;" + 
        "RemoteServerConnection={server=http://localhost/foo2;interface=0.0.0.0;};" + 
        "publisherport=1234;StatisticsURL=http://localhost/foo3";
Run Code Online (Sandbox Code Playgroud)

整个内部连接属性就是把它抛在一个循环中.我想根据密钥获取具体值.

以下是我用过的答案:

System.Data.Odbc.OdbcConnectionStringBuilder builder = new System.Data.Odbc.OdbcConnectionStringBuilder(); 
builder.ConnectionString = this.ConnectionString;
MessageBox.Show(builder["RemoteServerConnection"]);
Run Code Online (Sandbox Code Playgroud)

Oli*_*bes 5

用()替换" {"和" }" "可以解决问题:

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"];
Run Code Online (Sandbox Code Playgroud)