public override object Build(Zongsoft.Plugins.Builders.BuilderContext context)
        {
            var builtin = context.Builtin;

            var token = new Zongsoft.Web.Routing.RouteToken(
                builtin.Name,
                builtin.Properties.GetRawValue("kind"),
                builtin.Properties.GetRawValue("url"),
                builtin.Properties.GetValue <object>("handler", null));

            this.ResolveValues(token.Defaults, builtin.Properties.GetValue <string>("defaults"));
            this.ResolveValues(token.Constraints, builtin.Properties.GetValue <string>("constraints"));
            this.ResolveValues(token.States, builtin.Properties.GetValue <string>("states"));

            if (!token.States.ContainsKey("area"))
            {
                object area = null;

                if (token.Constraints.TryGetValue("area", out area))
                {
                    token.States.Add("area", area);
                }
                else
                {
                    token.States.Add("area", Zongsoft.Web.VirtualPathHelper.GetArea(token.Url));
                }
            }

            return(token);
        }
        public override object Build(Zongsoft.Plugins.Builders.BuilderContext context)
        {
            var token = (Zongsoft.Web.Routing.RouteToken)base.Build(context);

            if (token != null)
            {
                token.Ignored = true;
            }

            return(token);
        }