在我目前正在进行的一个项目中,我们添加了一个用于访问HttpSessionState
对象的包装类。问题在于当前的解决方案意味着您必须编写一些代码来包装功能。我想出了以下解决方案
/// <typeparam name="TKey">Class used for generating key into session state storage.</typeparam>
/// <typeparam name="T">Type of object to store.</typeparam>
public static class SessionManager<TKey, T>
{
static SessionManager()
{
_key = typeof(TKey).ToString();
}
private static readonly string _key;
public static string Key
{
get { return _key; }
}
// Other functions ... (Set, IsSet, Remove, etc.)
}
现在您只需使用即可创建所需的存储
using StringStore= Test.SessionManager<System.Boolean, System.String>;
using StringStore2= Test.SessionManager<System.Version, System.String>;
StringStore.Set("I'm here");
StringStore2.Set("I'm also here");
该代码有效并且很好,因为您可以轻松创建包装类(单个 using 语句)并且一切都是静态的。然而,代码有点滥用类型系统,所以可能有点模糊?在我添加它之前,我想得到一些反馈,所以这里有一个问题:
如果您我们正在维护上述系统并遇到上面的代码,您会
- 追捕并杀死签入文件的人?
- 对聪明的尝试有点恼火,但让它溜走?
- 认为这是避免样板代码的好方法吗?
您更喜欢使用文本生成工具] 像T4吗?
感谢您的任何回复,
麦兹