protected SiteMapNode ResolveSiteMapNode(HttpContext context) { SiteMapResolveEventHandler eventHandler = SiteMapResolve; if (eventHandler == null) { return(null); } if (!context.Items.Contains(_resolutionTicket)) { context.Items.Add(_resolutionTicket, true); try { Delegate[] ds = eventHandler.GetInvocationList(); int len = ds.Length; for (int i = 0; i < len; i++) { SiteMapNode ret = ((SiteMapResolveEventHandler)ds[i])(this, new SiteMapResolveEventArgs(context, this)); if (ret != null) { return(ret); } } } finally { context.Items.Remove(_resolutionTicket); } } return(null); }
protected override void OnInit(EventArgs e) { ReadLocale(Request.Cookies[LocaleHelper.CONFG_COOKIE_NAME]); //CheckUpdateSiteMap(); /*lock( SiteMap.Provider ) * { * if( _h == null ) * { * _h = new SiteMapResolveEventHandler( ResolveIds ); * SiteMap.SiteMapResolve += _h; * } * }*/ lock (SiteMap.Providers) { if (_h == null) { _h = new SiteMapResolveEventHandler(ResolveIds); foreach (SiteMapProvider prov in SiteMap.Providers) { prov.SiteMapResolve += _h; } } } base.OnInit(e); }
protected SiteMapNode ResolveSiteMapNode(HttpContext context) { SiteMapResolveEventHandler siteMapResolve = this.SiteMapResolve; if ((siteMapResolve != null) && !context.Items.Contains(this._resolutionTicket)) { context.Items.Add(this._resolutionTicket, true); try { Delegate[] invocationList = siteMapResolve.GetInvocationList(); int length = invocationList.Length; for (int i = 0; i < length; i++) { SiteMapNode node = ((SiteMapResolveEventHandler)invocationList[i])(this, new SiteMapResolveEventArgs(context, this)); if (node != null) { return(node); } } } finally { context.Items.Remove(this._resolutionTicket); } } return(null); }
protected SiteMapNode ResolveSiteMapNode(HttpContext context) { SiteMapResolveEventHandler eh = events [siteMapResolveEvent] as SiteMapResolveEventHandler; if (eh != null) { lock (resolveLock) { if (resolving) { return(null); } resolving = true; SiteMapResolveEventArgs args = new SiteMapResolveEventArgs(context, this); SiteMapNode r = eh(this, args); resolving = false; return(r); } } else { return(null); } }