在UWP应用程序上使用VB.net获取IPGlobalProperties

时间:2017-03-12 10:15:48

标签: vb.net networking windows-10-universal

我在Visual Studio 2017中用VB编写了一个非常简单的通用Windows应用程序。 应用程序应该向用户提供基本的网络信息,因此我想使用IPGlobalProperties收集数据并打印 - 作为第一个示例 - 名为DomainName textDomain >

Dim NetworkProperties As NetworkInformation.IPGlobalProperties
NetworkProperties = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties
textDomain.Text = NetworkProperties.DomainName

虽然在前两行代码中正确分配了属性,但第三行导致错误System.PlatformNotSupportedException: 'Operation is not supported on this platform.' 我在经典的Windows应用程序上尝试了相同的代码,它按预期工作,因此Universal应用程序不支持此操作吗? 如果是,我应该使用什么方法来获得有关网络的相同信息?

感谢您提供的任何帮助

卢卡

1 个答案:

答案 0 :(得分:0)

首先,uwp app不支持IPGlobalProperties类。由于.NET for UWP应用程序提供了一组托管类型,您可以使用它们来创建通用Windows平台应用程序,但不是全部。详情请参阅.NET for UWP appsSystem.Net命名空间可以在uwp app中使用,但IPGlobalProperties不能。

其次,您可以在uwp app中找到等效或类似的API。例如,您还可以在uwp中找到属于Windows.Networking.Connectivity命名空间的NetworkInformation。但是调用此类的方法与System.Net.NetworkInformation 命名空间的方式不同。

如果您希望将计算机名称或域名作为IPGlobalProperties,则可以调用GetHostNames()方法。代码如下:

Imports Windows.Networking.Connectivity
''' <summary>
''' An empty page that can be used on its own or navigated to within a Frame.
''' </summary>
Public NotInheritable Class MainPage
    Inherits Page

    Private Sub btngetinfo_Click(sender As Object, e As RoutedEventArgs)  
        Dim hostNames = NetworkInformation.GetHostNames()
        textDomain.Text = hostNames.First.ToString
    End Sub
End Class