Я унаследовал сайт SharePoint 2007 и работаю над его миграцией в SharePoint 2010. Я перекомпилирую приемники компонентов с использованием 2010 .DLL и столкнулся со следующей ошибкой:
'Microsoft.SharePoint.Publishing.PublishingWeb »не содержит определения для« CurrentNavigationNodes »и не может быть найден метод расширения« CurrentNavigationNodes », принимающий первый аргумент типа« Microsoft.SharePoint.Publishing.PublishingWeb »(если вы пропустили директиву using илиссылка на сборку?)
В Sharepoint 2007 CurrentNavigationNodes является собственностью Microsoft.SharePoint.Publishing.PublishingWeb.По-видимому, он перемещен в другой класс или заменен другим способом получения списка узлов.Я не могу понять это.Кто-нибудь знает, каков новый способ сделать это?
Вот соответствующий фрагмент кода 2007 года:
// set references to site, web, publishing site, publishing web
SPWeb thisWeb = (SPWeb)properties.Feature.Parent;
SPSite thisSite = thisWeb.Site;
PublishingSite thisPubSite = new PublishingSite(thisSite);
PublishingWeb thisPubWeb = PublishingWeb.GetPublishingWeb(thisWeb);
// enable tree view
thisWeb.TreeViewEnabled = true;
thisWeb.Update();
// navigation settings
thisPubWeb.InheritGlobalNavigation = true;
thisPubWeb.InheritCurrentNavigation = false;
thisPubWeb.IncludePagesInNavigation = true;
thisPubWeb.IncludeSubSitesInNavigation = true;
thisPubWeb.NavigationShowSiblings = false;
// clear current navigation (thrice needed to get everything)
SPNavigationNodeCollection navNodes = thisPubWeb.CurrentNavigationNodes;
foreach (SPNavigationNode thisNavNode in navNodes)
{
navNodes.Delete(thisNavNode);
}
foreach (SPNavigationNode thisNavNode in navNodes)
{
navNodes.Delete(thisNavNode);
}
foreach (SPNavigationNode thisNavNode in navNodes)
{
navNodes.Delete(thisNavNode);
}
thisPubWeb.Update();