В проекте, над которым я сейчас работаю, мы добавили класс-оболочку для доступа к объекту 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 ?
Спасибо за любые ответы,
Мадс