gpt4 book ai didi

c# - 有没有动态网络服务引用?

转载 作者:行者123 更新时间:2023-12-02 15:44:54 25 4
gpt4 key购买 nike

我的目标是连接到共享点列表并将数据下载到数据表中。我可以很好地做到这一点,但是以一种非常“硬编码”的方式,因为我必须在 Visual Studio 内手动在项目上添加 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);

无论如何,我可以只从外部获取一个 URL 并让此代码工作,而无需创建所有这些手动更新和配置更新。

我想将这段代码放入一个库中,这样人们就可以获取一个 URL 并将其传递进去。有趣的是,如果你查看上面的内容,它们是一个 URL 属性(所以你认为它会起作用),但事实并非如此。除非设置了所有其他配置和引用,否则似乎无法工作。无论如何,是否可以在不需要所有这些 Visual Studio 自动生成的配置驱动代码的情况下执行此操作?

最佳答案

如果您的问题是每个列表都需要一个新的服务引用,那么它已经解决了。只要所有 List.asmx 服务都具有相同的 WSDL,您就不需要为每个服务创建新的服务引用。您可以使用单个服务引用,并且只需使用采用端点地址 (Url) 的构造函数重载。

关于c# - 有没有动态网络服务引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com