1

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

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

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

要求:

我想为每个上述类都有独立的InitDispose方法。

4

2 回答 2

1

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

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);
    }
}

请注意,析构函数(以波浪号开头的方法~)可能不是必需的,但请阅读我上面链接的答案中的详细信息,以便清楚了解情况原因-这只是直接回答您的问题。

至于Init方法,您指的是构造函数吗?

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

public class Customer
{
    public Customer()
    {

    }
}
于 2011-04-12T09:26:00.797 回答
0

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

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

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

public class Customer : BaseClass
{
    //Some code
}

那可能对你有帮助。

于 2011-04-12T09:02:35.970 回答