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