Я ищу элегантный способ настроить AppContext правильно, и вот оно:
public class AppContext : IAppContext
{
public AppContext()
{
Application = new AppStorage(); // app scoped hashtable
Local = new LocalStorage(); // current thread scoped hashtable
Session = new SessionStorage(); // session for some reasons hashtable
}
public CultureInfo Culture { get; set; } // session scoped
public UserProfile AuthProfile { get; set; } // session scoped
public IStorage Application { get; private set; } // application
public IStorage Session { get; private set; } // session
public IStorage Local { get; private set; } // current thread
public IStorage WcfSession { get; private set; } // wcf session
private ISecurityWriter SecurityWriter; // session scoped
private ISecurityContext SecurityContext; // session scoped
/// 1. START WEB CONTEXT
/// 2. START WCF CONTEXT
}
В настоящее время я балансирую между
а)
public class Global : HttpApplication
{
public static AppContext Context;
protected void Application_Start(object sender, EventArgs e)
{
Context = new AppContext();
}
}
но мне не нравится идея иметь
Global.Context.Sesstion.Set<Order>(theOrderInstance);
б) и добавление к AppContext следующих строк
public class AppContext{
private static AppContext instance;
public AppContext Instance
{
get{
if(instance == null)
instance = new AppContext();
return instance;
}
}
это тоже не очень красиво выглядит
AppContext.Instance.Session.Set<Order>(theOrderInstance);
ВОПРОС : Мне нравится идея иметь
AppContext.Session.Set<Order>(theOrderInstance);
какие-нибудь проблемы, как этого добиться?
что-то OSS и актуальное для этой темы будет с благодарностью
веселиться :) 1023 *