Мой дядя самых честных правил программ исходники за так ...

27 февр. 2009 г.

Отладка маршрутов для System.Web.Routing

В глубинах интернета обнаружился интересный инструмент “Url Routing Debugger”, предназначенный для отладки маршрутов задаваемых с помощью System.Web.Routing.

Достаточно добавить RouteDebug.dll в референсы проекта, и прописать в Global.asax сразу после регистрации маршрутов следущий код:

using System;

using System.Web.Routing;

 

namespace Home.Andir.Examples

{

    public class Global : System.Web.HttpApplication

    {

        protected void Application_Start(object sender, EventArgs e)

        {

            RegisterRoutes(RouteTable.Routes);

 

            RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

        }

 

        private void RegisterRoutes(RouteCollection routes)

        {

            routes.Add(

                new Route(

                    "route/{action}",

                    new StopRoutingHandler())

                );

 

            routes.Add(

                new Route(

                    "test/id={id}",

                    new StopRoutingHandler())

                );

 

            routes.Add(

                new Route(

                    "{controller}/{action}/{id}",

                    new RouteValueDictionary {

                        { "controller", "Home" },

                        { "action", "Index" },

                        { "id", "" } },

                    new StopRoutingHandler())

                );

 

        }

    }

}

Отладчик, подменяет все заданные IRouteHandler на свой DebugRouteHandler и теперь, если перейти на любой заданный маршрут, то можно увидеть следующую картину:

 Скриншот: RouteDebugger в действии

Здесь можно увидеть список всех зарегистрированных маршрутов и порядок их срабатывания (в первой колонке).

Комментариев нет:

Отправить комментарий

Публикуются только комментарии, которые показались автору блога заслуживающими внимания.