ASP.NET:实现Init和Dispose方法

时间:2011-04-12 08:59:39

标签: asp.net web-applications methods dispose init

ASP.NET Web应用程序是否只有一个Init和一个Dispose方法,或者我可以为每个类实现这些方法吗?

更具体地说,我有Customer个组件和CustomerRecord个类,并希望在这两个类中实现InitDispose方法。

这样做的正确方法是什么?

要求:

我想为每个上述类提供独立的InitDispose方法。

2 个答案:

答案 0 :(得分:1)

对于应该是一次性的类,通过公开公共Dispose方法,必须实现IDispsable接口以使“可处置性”在显式用户处置范围之外有效。许多地方已经多次介绍过including here,例如:

public class Customer : IDisposable
{
    public void Dispose()
    {
        Dispose(true);
        GC.SupressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (disposing)
        {
            //dispose of managed resources
        }
        //dispose of unmanaged resources
    }

    ~Customer()
    {
        Dispose(false);
    }
}

请注意,析构函数(以代字号~开头的方法)可能没有必要,但请阅读上面链接的答案中的详细信息,以清楚了解 what 为什么 - 这只是直接回答你的问题。

对于Init方法,您指的是constructor吗?

如果是这样,那么看看上面例子中的析构函数;构造函数(或初始化程序)可以用相同的方式定义减去代字号,通常加上显式访问修饰符(publicprivate等等,例如:

public class Customer
{
    public Customer()
    {

    }
}

答案 1 :(得分:0)

您可以根据需要使用Init和Dispose方法创建基类,然后使其他类继承它。例如:

public class BaseClass
{
    public void Init()
    {
        //Some code
    }

    public void Dispose()
    {
        //Some code
    }
}

public class Customer : BaseClass
{
    //Some code
}

这可能对你有帮助。