我使用asp net 4.5。

我有Marker.aspx页,并且在Marker.aspx.cs页后面有代码。
每当发生回发时,都会在后面的代码中触发Page_Load函数,并创建GeoMarkup类。

   GeoMarkup markupManager;
   protected void Page_Load(object sender, EventArgs e)
    {
         markupManager = new GeoMarkup("constans",
                                        "mapName",
                                        null);

    }


无论何时实施回发,我都需要触发析构函数并将其放入析构函数这一行:

markupManager.Dispose();


我的问题是如何在后面的代码中实现析构函数?

最佳答案

类后面的代码是Page的子类,该子类具有虚拟的Dispose方法。

您应该在代码中覆盖该方法

public override void Dispose()
{
    if (markupManager != null) {
        markupManager.Dispose();
        markupManager = null;
    }
}


当不再需要处理当前HTTP请求时,HTTP管道将在类上调用Dispose。

10-06 14:32