Как извлечь данные из XML-файла в приемнике событий Featurepoint 2010?
Я следую этому руководству и пытаюсь настроить код в приемнике событий.
Мне нужно 2 свойства, чтобы отправить в их метод SPWeb и строку.
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
// is there a way to make this non hardcoded?
SPSite site = new SPSite("http://localhost.com");
SPWeb web = site.OpenWeb("/");
string XMlPath = // get xml file path
CreateGroups(web, path);
}
private void CreateGroups(SPWeb currentSite, string groupsFilename)
{
}
Поэтому я попытался использовать getFullPath, но это не сработало. Я также пытался использовать MapPath, но у меня не было доступа к этому.
Итак, как мне получить файл XML (я думаю, это то, что мне нужно)?
1 ответ
- Вам нужно избавиться от объекта SPSite / SPWeb, это обычно делается в
using
пункт. - Вам не нужно использовать абсолютный путь (жесткий код) в получателе функции, так как функция уже ограничена областью веб / сайта
- ваш
XmlPath
обычно необходимо указать файл на сервере Sharepoint, который вы также развернули в своей функции - поскольку приемник функции работает после того, как все обычные файлы были развернуты, вы в порядке.
Без лишних слов, немного другой код:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
//Web scoped feature?
//spWeb = (SPWeb) properties.Feature.Parent;
//assuming Site scoped feature
spWeb = ((SPSite) properties.Feature.Parent).RootWeb;
using (spWeb)
{
string XmlPath = properties.Definition.RootDirectory + @"\Xmlfile\groups.xml"
CreateGroups(spWeb, XmlPath);
}
}
Итак, как вы можете получить свой XML-файл в "\Xmlfile\groups.xml"? Просто создайте модуль! (Добавить новый элемент> Модуль) elements.xml вашего модуля должен выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="Xmlfile" Path="Xmlfile">
<File Path="groups.xml" Url="Xmlfile/groups.xml" />
</Module>
</Elements>
Конечно, вам нужно добавить свой файл groups.xml в этот модуль (контекстное меню> Добавить существующий элемент), чтобы это работало.
Также обратите внимание, что вы можете легко отлаживать приемники функций, просто убедитесь, что для конфигурации развертывания установлено значение "Без активации" (Свойства проекта> Sharepoint > Активная конфигурация развертывания) - таким образом, вам нужно будет вручную активировать функцию на сайте (вместо этого Visual Studio делает это автоматически для вас в режиме отладки), но отладка будет работать без нареканий.