我正在创建一个应用程序,最终用户可以配置该应用程序以访问用户输入的各种不同SharePoint网站上的SharePoint列表。
我在网上看到的所有阅读SharePoint列表的示例都是以下形式:
此方法根据指定的服务器引用在项目中创建代理类。但是,就我而言,服务器/站点在设计时是未知的,只有运行时才能读取用户指定的站点/列表。如何做到这一点(通过http://intranet.wingtip.com/_vti_bin/ListData.svc阅读列表,但仅在运行时)?
注意:我正在使用与运行Sharepoint的计算机不同的计算机进行此调用。
答案 0 :(得分:2)
有几个答案。
如果列表架构在您查询的所有站点中保持一致,您仍然可以使用生成的代理。创建DataContext时,只需将URI传递给用户选择的站点的ListData.svc。
如果没有,那么您可以使用具有适当格式的URI的ASP.NET WebRequest,并解析出返回的ATOM或JSON响应。
有关使用REST API的更多信息,请查看2009 SharePoint会议中的此演讲
答案 1 :(得分:0)
您可以使用Url属性在运行时在代理类中设置URL。
答案 2 :(得分:0)
SharePoint不为其Web服务提供代理类。因此,无法在运行时设置URL。我必须做的是添加2个服务引用,然后参数化我将访问哪一个。我使用配置设置来确定要访问的配置。如果站点名称更改或列出更改,那么我需要删除引用,重新添加它们,重新编译和重新部署。无法在运行时更改SharePoint网站/列表。一直在寻找3天的答案。微软不知道如何做到这一点。