Программный доступ к списку Sharepoint во время выполнения (без создания ссылки на службу во время разработки) - PullRequest
1 голос
/ 09 июня 2011

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

Все примеры чтения списков SharePoint, с которыми я сталкивался в Интернете, имеют вид:

  1. Откройте или создайте проект Visual Studio.
  2. В Solution Explorer щелкните правой кнопкой мыши узел References и выберите Add Service Reference.
  3. В поле Адрес введите URL-адрес целевого сайта и добавьте /_vti_bin/ListData.svc.Например, адрес для сайта intranet.wingtip.com будет http://intranet.wingtip.com/_vti_bin/ListData.svc.
  4. Измените имя по умолчанию в поле «Пространство имен» с ServiceReference1 на что-то более подходящее, например, WingtipSite.
  5. и т. Д.и т. д. и т. п.

Этот метод создает прокси-классы в вашем проекте на основе указанной ссылки на сервер.Однако в моем случае сервер / сайт неизвестен во время разработки, а только во время выполнения путем чтения сайтов / списков, указанных пользователем.Как можно поступить так (читая список через http://intranet.wingtip.com/_vti_bin/ListData.svc,, но только во время выполнения)?

Примечание: я звоню с другого компьютера, отличного от того, на котором работает Sharepoint.

Ответы [ 3 ]

2 голосов
/ 09 июня 2011

Есть пара ответов.

Если схемы списков будут одинаковыми для всех запрашиваемых сайтов, вы все равно можете использовать сгенерированный прокси. Когда вы создаете DataContext, вам просто нужно передать URI в ListData.svc для сайта, выбранного пользователем.

Если нет, то вы можете использовать ASP.NET WebRequest с соответствующим образом отформатированным URI и проанализировать ответ ATOM или JSON, который возвращается.

Для получения дополнительной информации об использовании REST API, ознакомьтесь с этим докладом на конференции SharePoint SharePoint 2009

http://msdn.microsoft.com/en-us/sharepoint/ff462048

0 голосов
/ 26 ноября 2012

SharePoint не предоставляет прокси-класс для своих веб-сервисов.Поэтому невозможно установить URL во время выполнения.Что мне нужно было сделать, это добавить 2 ссылки на сервисы, а затем указать, какой из них я получу.Я использую настройки конфигурации, чтобы определить, какой из них получить доступ.Если имя сайта меняется или список меняется, то мне нужно удалить ссылки, добавить их заново, перекомпилировать и заново развернуть.Нет способа изменить сайт / список SharePoint во время выполнения.Искал ответ 3 дня.Microsoft не знает, как этого добиться.

0 голосов
/ 09 июня 2011

Вы можете установить URL в вашем прокси-классе во время выполнения с помощью свойства Url.

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