如何在VS 2015中为UWP添加Web引用?

时间:2016-02-19 05:50:08

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

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

等特定服务的请求
public const string GET_SKU_DETAILS = "http://{0}:{1}/OmniRetailerServices/SkuServices/getSkuDetails?skuID={2}";

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

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

请帮我解决这个问题。

提前致谢。

3 个答案:

答案 0 :(得分:1)

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

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

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

func setViewController(viewController: UIViewController) {
    if viewController is Foo {
        self.viewController = viewController
    } else {
        print("ViewController does not conform to Foo protocol")
    }
}

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

// 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));

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

你不能这样做。你需要找到像HttpClient这样的另一种方式。

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

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