Развертывание функции на одном сайте SharePoint / Как выбрать один сайт SharePoint
-
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}"));
}