Замена для метода публикации SharepointWeb.currentNavigationNodes? - PullRequest
0 голосов
/ 10 декабря 2010

Я унаследовал сайт 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();

1 Ответ

0 голосов
/ 10 декабря 2010

Проблема решена.Похоже, что поскольку PublishingWeb расширяет SPWeb, Microsoft удалила CurrentNavigationNodes из PublishingWeb в пользу прохождения через SPWeb.Navigation.CurrentNavigationNodes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...