-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] などの接続に必要な引数を取得するために使用される上記の 3 つのメソッド

これらのメソッドはすべて dll としてコンパイルされます。

ここで、上記のメソッドをスキャンし、引数が接続文字列を保持する出力を返すプロジェクトを作成する必要があります

今私のクエリは

  1. どの引数に接続文字列が含まれているかをどのように見つけることができますか?
  2. 接続文字列がないと con.open がエラーをスローすることは誰もが知っているように、それを見つける方法はありますか?

あなたの貴重な提案とコマンドを待っています

編集

私の究極の解決策は、私は私と一緒に dll だけを持つことです。私の仕事は、dll をスキャンし、その中に con.open メソッドが存在する場所を見つけることです。最後に、そのメソッドに渡されるパラメーターを取得して、接続文字列はメソッド内にあります

4

4 に答える 4

0

リフレクションを使用してメソッド情報を取得できますが、どのパラメーターが接続文字列であるかはわかりません。結局のところ、これは単なる文字列です。パラメータの名前を確認することで、知識に基づいた推測を行うことができます。

ただし、なぜこれを行う必要があるのか​​わかりません。VSIDEインテリセンスは、これらのメソッドを呼び出すコードを作成するときに多くの情報を提供します。

于 2012-08-30T12:33:59.907 に答える
0

このコードで試すことができます

If( argument  is SqlConnection)
{

}

ただし、フレームワークの最新バージョンを使用している場合は、オプションの名前付きパラメーターを使用できます

于 2012-08-30T12:19:57.940 に答える
0

SqlConnectionStringBuilderを検索している可能性があります。

パラメータは有効な接続文字列ですその後:

名前と値のペアに解析されます。無効なキー名は KeyNotFoundException を発生させます。

于 2012-08-30T12:21:21.607 に答える
0

あなたは何をしたいのですか、それが理解できないことを説明してください。

しかし、あなたはできる

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