protected override void Invoke(object parameter)
        {
            if (SiteMapNode != null)
            {
                SiteMapNode.Execute();
            }
            else if (!string.IsNullOrEmpty(SiteMapNodeKey))
            {
                if (!SiteMapService.IsSiteMapLoaded)
                {
                    SiteMapService.LoadSiteMap((s) =>
                    {
                        this.Invoke(null);
                    });
                    return;
                }

                var _siteMapNode = SiteMapService.ResolveSiteMapNode(SiteMapNodeKey);
                if (_siteMapNode == null)
                {
                    throw new InvalidOperationException(string.Format(SITEMAPNODE_NOTFOUND, SiteMapNodeKey));
                }
                _siteMapNode.Execute();
            }
        }