1 votes

ASP.NET - Résoudre le chemin du HttpHandler chargé

Dans ASP.NET, existe-t-il un moyen de résoudre de manière programmatique le chemin d'accès à un HttpHandler chargé tel qu'il est défini dans le Web.config ? (c'est-à-dire SomeModule.axd) ?

4voto

Stephen M. Redd Points 4222

Si je comprends bien la question, vous voulez récupérer le chemin à partir de web.config, n'est-ce pas ?

Si c'est le cas, ce que vous recherchez est probablement quelque chose comme ceci :

string p = null;
System.Web.Configuration.HttpHandlersSection httpHandlersSection =
    (System.Web.Configuration.HttpHandlersSection)
        System.Configuration.ConfigurationManager.GetSection("system.web/httpHandlers");

foreach (System.Web.Configuration.HttpHandlerAction handler in httpHandlersSection.Handlers)
{
    if(handler.Type == "myType")
    {
        p = handler.Path;
        break;
    }
}

L'astuce ici est l'instruction if. Les gestionnaires dans web.config n'ont pas de "noms" sympathiques que vous pouvez utiliser comme clé. Ils n'ont que des types (qui peuvent être d'affreuses chaînes de caractères), des chemins et le verbe. Pour localiser le gestionnaire spécifique qui vous intéresse, vous devrez peut-être rechercher dans le type ou le chemin du gestionnaire une sous-chaîne connue qui identifie le gestionnaire spécifique que vous souhaitez trouver.

0voto

Siim K Points 577

Dans le contexte http actuel, utilisez la propriété path de l'objet Request.

0voto

Andrew Arnott Points 35346

Si vous êtes intéressé par le chemin d'accès au gestionnaire traitant la demande actuelle :

string path = HttpContext.Current.Handler.GetType().Assembly.CodeBase;

Si vous savez où trouver une collection d'autres instances de gestionnaires, vous pouvez utiliser la même approche pour obtenir leurs chemins.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X