【问题标题】:How to Add Web Reference for UWP in VS 2015?如何在 VS 2015 中为 UWP 添加 Web 引用?
【发布时间】:2016-05-31 14:34:34
【问题描述】:

我正在尝试将我的代码从普通 wpf 应用程序迁移到 通用 Windows 平台。 以前我使用 VS 2012 来开发我的 WPF 应用程序并且它工作正常。现在我也想在移动设备上使用相同的应用程序。我发现 UWP 作为解决方案。现在我正在使用 vs 2015 。但是在 vs 2015 我无法找到 Web Reference 选项我只能看到 Service Reference。 实际上我的情况是我是动态的根据我连接到特定服务的请求,从用户那里获取 IP 地址和端口号,例如

public const string GET_SKU_DETAILS = "http://{0}:{1}/OmniRetailerServices/SkuServices/getSkuDetails?skuID={2}";

因此,我正在连接到特定的远程服务器以访问服务。

我在 vs 2012 中使用 Web References 做到了这一点。但在 vs 2015 中,我无法找到 Web Reference。所以我的问题是如何在 UWP 应用程序中使用 VS 2015 做到这一点。

请帮我解决这个问题。

提前致谢。

【问题讨论】:

    标签: c# wpf win-universal-app service-reference web-reference


    【解决方案1】:

    即使在 WPF 等经典桌面应用程序中,Web 引用(ASMX Web 服务客户端)也被视为遗留问题。服务引用(WCF 服务客户端)是它们的继承者,正如您已经注意到的,它们在 UWP 应用中可用。

    只需创建服务引用而不是 Web 引用。您应该能够通过指向与创建 Web 引用相同的 WSDL 来创建它。

    您可以在创建客户端代理实例时更改端点 URL:

    // use the base URL without the method name
    var url = String.Format("http://{0}:{1}/OmniRetailerServices/SkuServices", hostname, port);
    
    var client = new SkuServicesClient(new BasicHttpBinding(), new EndpointAddress(url));
    

    要调用web方法,在生成的代理上调用相应的方法:

    var result = await client.GetSkuDetailsAsync(argument);
    

    不知道您的服务的详细信息,我试图在我的代码中提出合理的 URL 值和名称以匹配您提供的信息。即使它们在您的情况下并不相同,也应该足以让您继续前进。

    【讨论】:

      【解决方案2】:

      是的,你可以。就像你要添加一个新的服务引用一样继续(是的,我现在需要添加一个 Web 引用),然后在“添加服务引用”窗口的左下方,单击“高级”选项。然后,再次在底部,您会看到“兼容性”并靠近“添加 Web 引用”按钮,现在明白了! :)

      【讨论】:

        【解决方案3】:

        你不能这样做。您需要找到另一种方式,例如 HttpClient。

        HttpClient 是使用 Web 服务的简单方法。

        https://blogs.windows.com/buildingapps/2015/11/23/demystifying-httpclient-apis-in-the-universal-windows-platform/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多