leo*_*ora 2 c# sharepoint web-services list
我的目标是连接到sharepoint列表并将数据下载到数据表中.我可以做到这一点,但是一个非常"硬编码"的方式,因为我必须手动,在视觉工作室内,在项目上添加一个Web引用.例如,如果我想指向这样的东西:
http://www.ab.com/sites/SiteCollections/MyTeam/_vti_bin/dspsts.asmx
或
http://www.abc.com/sites/MyTeam/_vti_bin/Lists.asmx
(只是一个显示格式的虚拟URL).
我必须在Visual Studio中创建一个Web服务引用.这会生成一堆代码(Reference.cs),并在我的项目和app.config中创建一个Web引用部分,现在我可以使用以下代码:
com.mysite.Lists lists = new Lists();
lists.Credentials = new System.Net.NetworkCredential(user, pwd, "CORP");
lists.Url = "http://www.abc.com/sites/MyTeam/_vti_bin/Lists.asmx";
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
XmlNode listitems = lists.GetListItems(sharepointList, null, ndQuery, ndViewFields, "1000",
ndQueryOptions, null);
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以从外部获取一个URL,并使此代码工作,而无需创建所有这些手动更新和配置更新.
我想把这个代码变成一个库,这样人们就可以拿一个URL并传入它.有趣的是,如果你看上面他们是一个URL属性(所以你认为它会工作)但它似乎没有除非设置了所有其他配置和引用,否则工作.反正这样做是否需要所有这些视觉工作室自动生成的配置驱动代码?
如果您的问题是每个列表都需要新的服务引用,那么它已经解决了.只要所有List.asmx服务具有相同的WSDL,您就不需要为每个服务引用新的服务引用.您可以使用单个服务引用,只使用带有端点地址(Url)的构造函数重载.