このコード スニペットを考えると
public abstract class Foo
{
private static SqlConnection _sqlConnection;
protected SqlConnection GetOpenConnection()
{
if (_sqlConnection == null)
{
_sqlConnection = new SqlConnection("connection string");
}
return _sqlConnection;
}
protected abstract void Execute();
}
public class FooImpl : Foo
{
protected override void Execute()
{
var myConn = GetOpenConnection();
var dog = myConn.Query<dynamic>("select 'dog' Animal");
var first = dog.First();
string animalType = first.Animal;
// more stuff here
}
}
接続作成プロセスにアクセスできない場合、どのように接続をプロファイル接続にラップしますか? スーパークラスのコードを書き直して、そこにラップしますか? これには、ベースから継承する何百ものクラスを変更する必要があります。スーパーに必要な変更を最小限に抑えて、基本クラスを変更する方法を希望します。
ありがとう、スティーブン