Развертывание функции на одном сайте SharePoint / Как выбрать один сайт SharePoint

StackOverflow https://stackoverflow.com/questions/1637698

  •  08-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь развернуть набор функций, и для этого мне нужно выбрать целевой сайт, а затем использовать:

objWeb.Характеристики.Добавить(новый Guid({guid функции}));

мой вопрос в том, как бы мне выбрать этот сайт, вся помощь, которую я нашел, создает сайт, используя его конструктор, а затем отслеживает его, где, поскольку я хочу открыть существующий.

Спасибо.

Это было полезно?

Решение

Это зависит от того, где вы хотите выполнить свой код.Если у вас есть контекст sharepoint, вы можете использовать

SPWeb oWebsite = SPContext.Current.Web;
oWebsite.Features.Add(new Guid({guid of feature}));

или

using(SPWeb oWebsite = SPContext.Current.Site.OpenWeb("Website_URL"))
{
    oWebsite.Features.Add(new Guid({guid of feature}));
}

Например, если вы использовали консольное приложение и у вас не было SPContext, вы могли бы использовать

using(SPSite oSiteCollection = new SPSite("http://Server_Name"))
{
    using(SPWeb oWebsite = oSiteCollection.OpenWeb("Website_URL"))
    {
        oWebsite.Features.Add(new Guid({guid of feature}));
    }
}

Есть много других способов получить доступ к объекту SPWeb, но это зависит от того, какой информацией вы располагаете о сайте (имя, URL, позиция в иерархии).

Если вы хотите активировать функцию, ограниченную семейством сайтов или веб-приложением, вы можете получить доступ к SPSite или SPWebApplication аналогичным образом.

Сайт SPSite:

SPContext.Current.Site

или

SPSite oSiteCollection = new SPSite("Absolute_URL")

Веб-приложение:

SPContext.Current.Site.WebApplication

или

SPWebApplication.Lookup(new Uri("http://MyServer:989"));

и на любом из этих объектов вы можете вызвать

object.Features.Add(...))

Точно так же, как в приведенном выше коде.

Примечание:Область применения функции указана в feature.xml, подробнее см. Ниже:http://msdn.microsoft.com/en-us/library/ms436075.aspx

Другие советы

Для функций веб-области используйте:

using (SPWeb currentSite = SPContext.Current.Web)
{
  currentSite.WebFeatures.Add(new Guid("{GUID}"));
}

Для функций на уровне сайта используйте:

using (SPWeb currentSite = SPContext.Current.Web)
{
  currentSite.Features.Add(new Guid("{GUID}"));
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top