-1

让我们考虑一些方法

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 会抛出错误,有什么办法可以找到它吗?

等待您的宝贵建议和命令

编辑

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

4

4 回答 4

0

您很可能正在寻找SqlConnectionStringBuilder

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

解析为名称/值对。无效的键名引发 KeyNotFoundException。

于 2012-08-30T12:21:21.607 回答
0

你想做什么,请解释我不明白。

但你可以

try
{
  con.open();
  con.close();
}
catch
{
  //show message
}
于 2012-08-30T12:28:37.600 回答
0

您可以尝试使用此代码

If( argument  is SqlConnection)
{

}

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

于 2012-08-30T12:19:57.940 回答
0

您可以使用反射来获取方法信息,但这并不能告诉您哪个参数是连接字符串 - 毕竟它只是一个字符串。您可以通过检查参数的名称来进行有根据的猜测。

不过,我不确定您为什么需要这样做——当您编写调用这些方法的代码时,VS IDE 智能感知会为您提供大量信息。

于 2012-08-30T12:33:59.907 回答