0

希望这对于 Oracle 主机来说应该是一件容易的事。

因此,对于我之前的问题,我现在需要能够在 C# 中处理连接字符串,并决定是对“数据源”值(如果它是服务名称)执行 LDAP 查找,还是将其视为它是(连接描述符)。这样做的最好和最确定的方法是什么?我不想做空洞的事情,比如检查第一个字符是否是一个左括号。我正在寻找特定的模式/签名来识别“数据源”是服务名称还是连接描述符。

例如(如在此处获得),使用服务名称,它可能是这样的:

数据源=TORCL;用户ID=myUsername;密码=myPassword;

使用连接描述符,它可能是这样的:

数据源=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername; 密码=我的密码;

谢谢。

4

1 回答 1

0

在没有答案的情况下,我设计了自己的解决方案,它并不复杂,并且我假设连接描述符将始终包含“DESCRIPTION”。如果这个假设是正确的,那么解决方案就是正确的。如果没有,请随时提出自己的建议...

string dataSource = connectionString.Split(';').Select(x => x.Split('=')).Single(x => x.First() == "Data Source").Last();
bool isConnectDescriptor = dataSource.IndexOf("DESCRIPTION", StringComparison.OrdinalIgnoreCase) >= 0;
于 2013-02-01T19:13:41.160 回答