Asp.net Web项目外部的HttpApplication状态(类库)
我有一个ASP.net web应用程序,它的业务逻辑依赖于一个单独的DLL类库项目。但是,我想在DLL项目中使用全局HttpApplicationState。但这似乎是一个特定于web项目的实现Asp.net Web项目外部的HttpApplication状态(类库),asp.net,httpapplicationstate,Asp.net,Httpapplicationstate,我有一个ASP.net web应用程序,它的业务逻辑依赖于一个单独的DLL类库项目。但是,我想在DLL项目中使用全局HttpApplicationState。但这似乎是一个特定于web项目的实现 当然,我可以让特定类的构造函数(或方法)将HttpApplicationState作为参数,但我想知道是否有更有效的方法来实现这一点。我意识到我正在创建一些设计问题,但我真的希望能够在我的业务逻辑中使用全局内容。使用HttpContext.Current.Application您应该能够在外部类中访问H
当然,我可以让特定类的构造函数(或方法)将HttpApplicationState作为参数,但我想知道是否有更有效的方法来实现这一点。我意识到我正在创建一些设计问题,但我真的希望能够在我的业务逻辑中使用全局内容。使用
HttpContext.Current.Application
您应该能够在外部类中访问HttpApplicationState
更新
但是我同意John Saunders的观点-业务逻辑不应该知道从何处调用它。使用
HttpContext.Current.Application
您应该能够在外部类中访问HttpApplicationState
更新
但是我同意John Saunders的观点-业务逻辑不应该知道从何处调用它。您应该尝试将web应用程序和类库之间的关注点分开。类库应该尽可能少地了解web应用程序正在调用它们这一事实。特别是,它们不应该使用会话状态或应用程序状态。事实上,它们最好不要引用System.Web.dll 让web应用程序将类库需要的应用程序状态片段传递给类库。类库应该不知道数据来自应用程序状态这一事实
这也使得对类库进行单元测试变得更加容易,因为可以从单元测试框架中调用它。您应该尝试将web应用程序和类库之间的关注点分开。类库应该尽可能少地了解web应用程序正在调用它们这一事实。特别是,它们不应该使用会话状态或应用程序状态。事实上,它们最好不要引用System.Web.dll 让web应用程序将类库需要的应用程序状态片段传递给类库。类库应该不知道数据来自应用程序状态这一事实
这也将使对类库进行单元测试变得更加容易,因为可以从单元测试框架调用它。我正在寻找实现一个对象池模式,并且确实希望依靠应用程序状态来实现它的一些机械化……我希望保持和重用页面之间的数据库连接。目前,我的业务逻辑对象初始化数据库连接,当客户机从一页转到另一页时,这些连接被重新初始化,这会产生一些问题。因此,理想情况下,我希望我的BLL能够使用某种类型的池来防止GC删除这些连接。有没有其他模式可以用来实现这一点?问题不在于模式,而在于持久性存储。为什么不直接使用
静态
数据(适当锁定)来存储对象呢。此外,大多数数据库客户机都有连接池,所以您甚至不需要自己做。我正在寻找实现一个对象池模式,并真的希望依靠应用程序状态实现它的一些机械化…我想保持和重用页面之间的数据库连接。目前,我的业务逻辑对象初始化数据库连接,当客户机从一页转到另一页时,这些连接被重新初始化,这会产生一些问题。因此,理想情况下,我希望我的BLL能够使用某种类型的池来防止GC删除这些连接。有没有其他模式可以用来实现这一点?问题不在于模式,而在于持久性存储。为什么不直接使用静态
数据(适当锁定)来存储对象呢。而且,大多数数据库客户机都有连接池,所以您甚至不需要自己进行连接池。