0

我目前在一个 ASP.Net C# 应用程序中工作,并且我正在使用具有数据集和业务层的 DAL 设计模式。

通常,当我在 C# 代码中请求数据时,我会创建一个业务层对象:

BLLAccount oblAccount = new BLLAccount();

然后我可以通过调用我在 BLLAccount 中声明的函数来使用它: oblAccount.GetAccounts();

这个例程在每个页面上重复,每个事件范围内的每个数据请求都重复。你可以理解这很快就会很烦人,所以我声明了一个页面属性,所以我不必每次都重新创建相同的对象:

private BLLAccount m_BLLAccount = null;
    public BLLAccount oblAccount
    {
        get
        {
            if (m_BLLAccount == null)
            {
                m_BLLAccount = new BLLAccount();
            }
            return m_BLLAccount;
        }
    }

这样对象只在我需要它的时候创建,并且可以在每个事件范围内重复使用。这在页面上很有用,但现在我正在创建许多页面,甚至这个解决方案也变得烦人。我首先想到的是我目前正在使用母版页和子页,那么为什么不将页面属性放在母版页上,使用这个小片段在我的 aspx 中引用母版页呢?

<%@ MasterType VirtualPath="~/Master.master" %>

并在我的代码中以这种方式引用它:

Master.oblAccount.GetAccounts();

这很酷而且非常好,但我不确定这对服务器的内存和应用程序的性能有什么影响。如果未使用时间过长,我的页面属性会被清理吗?初始负载会不会太重?在业务层本身上创建一个构造函数更好还是那部分不重要?

4

1 回答 1

0

把它放在 MasterPage 中似乎有点过头了。如何创建一个继承自该类的类,Page并让所有需要访问数据层的页面都继承自该类。

于 2014-04-29T11:56:30.703 回答