この特定のアプリケーションは、多数の小さなユーティリティのスイートであり、互いに重複する可能性が低い特定のジョブを実行します。
したがって、すべてのユーティリティには独自のクラスと独自のメソッドがあります。すべてのユーティリティ クラスに 2 つ以上のコントローラー アクションが存在します。すべてのアクションで、次のようなユーティリティ クラスの新しいインスタンスを作成します。
public PartialViewResult NullifiedInvoicesFix_List(string id)
{
var _obj = new BgNullifiedInvoicesFix(string.Format(ConfigurationManager.ConnectionStrings["ENTERBG"].ConnectionString, "CRPDTA"));
ViewBag.F4211 = _obj.GetF4211List();
return PartialView();
}
public PartialViewResult NullifiedInvoicesFix_Step1()
{
var _obj = new BgNullifiedInvoicesFix(string.Format(ConfigurationManager.ConnectionStrings["ENTERBG"].ConnectionString, "CRPDTA"));
_obj.UpdateF74G4111();
_obj.UpdateF4211();
ViewBag.F4211Count = _obj.CountF4211();
ViewBag.F74G4111Count = _obj.CountF74G4111();
return PartialView();
}
ユーティリティ クラスのスニペット:
public class BgNullifiedInvoicesFix
{
private IDbConnection _db;
public BgNullifiedInvoicesFix(string serverConnection)
{
_db = new OleDbConnection(serverConnection);
}
public dynamic GetF4211List()
{
return this._db.Query<dynamic>(AppConstants.BG.NullifiedInvoicesFix.SelectF4211);
}
}
すべての呼び出しアクションで新しいインスタンスを取得しても問題ありませんか?
ガベージ コレクターはこれらを処理しますか、それともすべてのユーティリティ クラスでシングルトン実装を使用する必要がありますか?