Accès à HttpContext de la classe de demande scope
-
27-10-2019 - |
Question
J'ai une classe, héritée de IDependency . Quelle est la meilleure façon d'accéder HttpContext de ma classe? Je veux y accéder aussi rapidement possible, une fois HttpContext devient disponible.
J'ai essayé d'ajouter l'injection de dépendance pour IWorkContextAccessor pour ma classe, et d'y accéder à partir du constructeur, mais GetContext () retourne null puis .
La solution
Courant HttpContext est disponible via IWorkContextAccessor objet après les objets conteneurs IoC obtenir créé, de sorte que vous ne serez pas en mesure d'accéder à ceux du constructeur. La meilleure façon est d'accéder à l'objet contextuel lorsque vous souhaitez l'utiliser - tôt - en particulier pas dans le constructeur, comme les constructeurs s'appellent très tôt par le Autofac.
Vous pouvez également inject IOrchardServices objet (nous allons l'appeler "services") , puis utilisez la touche services.WorkContext.HttpContext objet.
Pouvez-vous fournir une plus détaillée à ce que vous voulez atteindre? Pourquoi voudriez-vous que l'accès si tôt? Pourrait pas être réécrite si l'objet de contexte sera utilisé plus tard (par exemple. Dans certains appels de méthode)?
HTH