Как получить данные из XML-файла в приемнике событий Featurepoint 2010? - PullRequest
1 голос
/ 06 апреля 2011

Я следую этому учебнику и пытаюсь настроить код в приемнике событий.

Мне нужно 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 Ответ

5 голосов
/ 07 апреля 2011
  1. Вам необходимо избавиться от объекта SPSite / SPWeb, обычно это делается в предложении using.
  2. Вам не нужно использовать абсолютный путь (жесткий код) вполучатель функции, так как функция уже имеет веб-область / область действия
  3. ваш 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 в этот модуль (Контекстное меню> Добавить существующийitem), чтобы это работало.
Также обратите внимание, что вы можете легко отлаживать приемники компонентов, просто убедитесь, что для конфигурации развертывания установлено значение «Без активации» (Свойства проекта> Sharepoint> Активная конфигурация развертывания) - так вам понадобитсявручную активировать функцию на сайте (вместо того, чтобы Visual Studio делал это автоматически для вас в режиме отладки), - но отладка будет работать без сбоев.

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