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

问题描述 投票:-1回答:1

我在Visual Studio 2017中用VB编写了一个非常简单的通用Windows应用程序。应用程序应该向用户提供基本的网络信息,所以我想使用IPGlobalProperties收集数据并打印 - 作为第一个例子 - 在TextBlock中调用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应用程序不支持此操作吗?如果是,我应该使用什么方法来获取有关网络的相同信息?

感谢您提供的任何帮助

卢卡

vb.net networking windows-10-universal
1个回答
0
投票

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

其次,您可以在uwp app中找到等效或类似的API。例如,您还可以在uwp中找到属于NetworkInformation名称空间的Windows.Networking.Connectivity。但是调用这个类的方法与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
© www.soinside.com 2019 - 2024. All rights reserved.