У меня есть пользовательское меню, построенное из файла web.sitemap, первая строка которого будет выглядеть примерно так:
SiteMapNodeCollection topLevelNodes = SiteMap.RootNode.ChildNodes;
Это работает - он получает все узлы верхнего уровня изфайл web.sitemap, и позволяет мне просматривать каждый SiteMapNode и делать вещи.
Однако теперь я хочу иметь возможность создавать несколько файлов web.sitemap, а затем программно определять, какой файл web.sitemap использовать, но я не могу понять, как это сделать.Я предполагаю, что я мог бы либо создать один пользовательский SiteMapProvider, который может выполнять логику, чтобы определить, какой файл web.sitemap загрузить, либо у меня есть несколько провайдеров, каждый из которых со свойством SiteMapFile, установленным в определенный файл * .sitemap, и затем переключитьсяпоставщики программно, прежде чем я получу доступ к SiteMap.RootNode.
Я думаю, что, вероятно, проще иметь одного настраиваемого поставщика, а затем переопределить часть, где он ищет фактическое физическое местоположение файла карты сайта, но мне неясно, как бы ясделайте это
Я много гуглил, но большинство ответов, похоже, касаются стандартных элементов управления sitemappath и т. д., а также того, как установить SiteMapDataSource, что я не считаю подходящим для моего подхода.