单一实例或 MVC 中每个操作调用中的实例 ASP.NET 实例



这个特定的应用程序是一套许多小实用程序,执行不太可能相互重叠的特定工作。

因此,每个实用程序都有自己的类和方法。每个实用程序类都存在 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);
        }
}

如果我在每个调用操作中获得一个新实例可以吗?

垃圾收集器是否负责这些,或者我应该在每个实用程序类中使用单例实现?

如果我在每个调用操作中获得一个新实例可以吗?

是的。

垃圾收集器是否负责这些或我应该使用 每个实用程序类中的单例实现?

GC 负责处理超出范围的所有内容,这里就是这种情况。所以你不需要担心它。

最新更新