0

OKここに私のコード

MySqlConnection conn = new MySqlConnection("Userid=root;pwd=root;port=3306;host=localhost;database=test");
conn.Open();

私が使用しているdevartコネクタの新しいバージョンに問題があるため、OldCompatibility.BinaryAsString = true; 以下に示すように、コードのどこにでもコード行を追加する必要があります。

OldCompatibility.BinaryAsString = true;
MySqlConnection conn = new MySqlConnectio("User id=root;pwd=root;port=3306;host=localhost;database=test");
conn.Open();

しかし、問題は、このコードで多くのページがあるアプリケーション全体でこの変更を行う必要があることです。したがって、アプリケーション全体でこの変更を行う必要がないように、これをグローバルに行う方法はありますか。devartコネクタ6を使用しています

4

5 に答える 5

4

接続が毎回リモートで類似していると仮定します。しないでください。すべての接続ロジックを1つの共有メソッドに保持し、どこでも接続コードを繰り返す代わりにそれを使用します。

public static MySqlConnection Connect() {
    OldCompatibility.BinaryAsString = true;
    MySqlConnection conn = new MySqlConnection("User id=root;pwd=root;port=3306;host=localhost;database=test");
    conn.Open();

    return conn;
}
于 2012-04-17T04:29:38.177 に答える
1

MySqlConnectionのコンストラクターにOldCompatibility.BinaryAsString=trueを指定すると、MySqlConnectionはカスタムクラスになります。

于 2012-04-17T04:26:12.963 に答える
0

ファクトリメソッドを使用できます

public class FactoryMethods
{
  public static MySqlConnection GetConfiguredConnection()
  {
    OldCompatibility.BinaryAsString = true;
    MySqlConnection conn = new MySqlConnectio("User id=root;pwd=root;port=3306;host=localhost;database=test");
    conn.Open();
    return conn;
  }
}

そして、接続がIDispose可能であると仮定します

using (var myConn = FactoryMethods.GetConfiguredConnection())
{
  // Use your connection here
}
于 2012-04-17T04:31:34.597 に答える
0

正規表現を使用して検索と置換を使用して、すべてのコードを一度に変更します。

1.- Ctrl + Hを押して、「検索と置換」ウィンドウを開きます。検索を入力し、改行を「\ n」(引用符なし)に置き換えます。

2.- [検索オプション]を展開して[使用]をオンにし、[正規表現]を選択します(これにより、[検索する文字列]ボックスの横にある右矢印もアクティブになります。いくつかのコマンド/ショートカットが一覧表示されます)。

例:検索時に次のように入力します。

{MySqlConnection conn = new MySqlConnection}

次に、置換時にこれを試してください。

OldCompatibility.BinaryAsString = true;\n\t\t\1 MySqlConnection conn = new MySqlConnection

これにより、検索に一致するすべてのコードが検索され、その前に行が追加されます。プレースホルダー{...}が\1に置き換えられていることに注意してください

于 2012-04-17T04:36:53.307 に答える
0

メソッドの使用に関する@minitechの提案を実際に検討する必要がありますが、実際にどこでもコードを変更できない場合、私が見ることができるオプションは2つだけです。

  • 別の名前空間で同じ名前を使用してMySQLConnectionを新しいクラスに拡張し、コンストラクターを変更して行を含めます。using次に、ファイルの先頭の行のみを置き換えます。

  • それができない場合は、同じ方法でラッパークラスを実装します。

これらのオプションは両方とも機能しない可能性があります(たとえば、クラスがfinalの場合は#1、クラスがパラメーターとして関数に渡される場合は#2)が、少なくともグローバル検索/置換または@minitechの実装ができない場合方法の提案、私は他の方法を見ることができません。

于 2012-04-17T04:45:50.650 に答える