Вы можете определенно использовать один и тот же IHttpHandler
. Вам просто нужен новый IRouteHandler , чтобы сопоставить входящий запрос с правильным обработчиком:
public class ImageRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new YourImageHttphandler();
}
}
В ваших маршрутах добавьте:
routes.Add("Images", new Route("images/{*file}", new ImageRouteHandler()));
Теперь любой запрос в /images
(например, /images/pic.jpg?width=320&height=240
) будет обрабатываться вашим существующим обработчиком. Очевидно, что вы можете изменить шаблон маршрута так, чтобы он соответствовал любому пути, который имеет смысл, точно так же как типичный маршрут MVC.