【发布时间】:2009-03-24 10:22:50
【问题描述】:
我希望在我的 c# .net 3.5 Web 项目中的网页和用户控件中可以使用一组功能。我的标准页面方法是创建一个扩展 System.Web.UI.Page 类的“基本页面”,然后让我的页面继承自此,而不是直接继承自 Page 类。
我现在想将其中一些功能公开给我的 Web 控件 (ascx) 和 Web 服务。我可以想出很多方法来做到这一点,但它们看起来有点笨拙,我想我错过了一个技巧。
是否有一种简单的方法可以使用继承为我的页面、Web 服务和控件提供一些通用功能,或者我是否需要将这些功能包装在一个所有人都可以访问的类中?
举例说明:
- 我有一个单例来处理我的 Web 应用程序的大部分功能。
- 在每个请求开始时,我想检查该类是否存在于网络缓存中,如果不存在则初始化它。
最初,这是在所有页面都使用的页面库中处理的。现在我需要能够通过相同的检查从服务和控件安全地访问我的单例。因此,我将检查和初始化逻辑提取到另一个类中,然后我的每个基本页面、控件和 Web 服务都将实例化。即使使用这个模型,我在 3 个地方(控件、ws 和页面的每个基类)都重复了相同的代码,虽然代码不多,但这似乎也是错误的!
它有效,但看起来很笨拙......我期待你们用你们的智慧谦卑我!
【问题讨论】:
-
这都是明智的建议。据我所知,没有我不知道的“通用”解决方案来解决这个问题。谢谢大家的意见。