从方法c#.net获取sqlconnection字符串参数

时间:2012-08-30 12:17:06

标签: c# .net

让我们考虑一些方法

method1(argument 1, argument 2, argument 3)
{
    con.open();
    con.close();
}

method 2(argument 1,argument 2,argument 3,argument 4)
{
    con.open();
    con.close();
}

method 3(argument 1,argument 2)
{
    con.open();
    con.close();
}

用于获取连接所必需的参数的上述三种方法,如[SqlCommand cmd,SqlConnection conn,SqlTransaction trans,CommandType cmdType]

所有这些方法都编译为dll。

现在我需要创建一个项目,它扫描上面的方法并返回哪个参数包含连接字符串的输出

现在我的查询是

  1. 我们怎样才能找到哪个参数包含连接字符串?
  2. 众所周知,如果没有连接字符串con.open抛出错误,有没有办法找到它?
  3. 等待您宝贵的建议和命令

    被修改

    我的最终解决方案是,我将只有一个dll我的工作是扫描dll并找到con.open方法在其中的位置,最后我需要获取传递给该方法的参数找到连接字符串在方法

    中的位置

4 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码

If( argument  is SqlConnection)
{

}

但是如果你有最新版本的框架,你可以使用optinal和named参数

答案 1 :(得分:0)

你可能会对SqlConnectionStringBuilder进行调查。

其中参数是有效的连接字符串。之后:

  

解析为名称/值对。密码名称无效   KeyNotFoundException。

答案 2 :(得分:0)

你想做什么,请解释我没有得到它。

但是你可以做到

try
{
  con.open();
  con.close();
}
catch
{
  //show message
}

答案 3 :(得分:0)

您可以使用reflection来获取method information,但这并不能告诉您哪个参数是连接字符串 - 毕竟它只是一个字符串。您可以通过查看name of the parameter

进行有根据的猜测

我不确定为什么你需要这样做 - 当你编写调用这些方法的代码时,VS IDE intellisense会给你很多信息。