2010-02-19 9 views
1

Mon idée était de créer mon propre HttpContext qui inclura certains des objets internes utilisés dans notre application. Donc, je pensais que je vais simplement créerASP.NET MVC: Comment créer son propre HttpContext

public class FooHttpContextBase : HttpContextBase 
{ 
    public string Foo 
    { 
     get { return "Boo"; } 
    } 
} 

Et puis passer outre HttpContext propriété:

public abstract class BaseController : Controller 
{ 
    private FooHttpContextBase context; 

    public BaseController() 
    { 
     context = new FooHttpContextBase(); 
    } 

    override public HttpContextBase HttpContext 
    { 
     get { return context; } 
    } 
} 

Mais je me suis rendu compte HttpContext est pas un virtuel - il ne peut prévaloir.

Eh bien, que suggérez-vous? Ajouter une nouvelle propriété dans le BaseController?

Merci d'avance!

+0

Même si vous pouviez injecter votre propre descendant 'HttpContext', à quoi cela servirait-il? Qu'avez-vous l'intention d'y mettre? – Aaronaught

+0

Essayez-vous d'implémenter des paramètres globaux pour toutes les sessions ou les paramètres spécifiques à la session? –

+0

Cela dépend * entièrement * exactement de ce que vous stockez, et vous ne nous avez rien dit à ce sujet. Il y a beaucoup d'endroits pour écurquer des données. Lequel a raison dépend de la façon dont les données doivent être utilisées. –

Répondre

-7

Je vous recommande simplement d'ajouter une nouvelle propriété à votre contrôleur de base qui partagera votre propre contexte. C'est le moyen le plus facile, élégant et rapide de faire le travail.
Si vous utilisez un IOC, je vous recommande de faire une injection de propriété pour celui-ci, voir this link pour plus de détails.

+0

Oui, si c'est la meilleure façon de faire cela, alors ça va pour moi. – palig

+0

-1 Il n'est pas nécessaire d'être grossier. Si vous avez une réponse à la question, énoncez simplement la solution. – rusmus

Questions connexes