我在Visual Studio 2017中用VB编写了一个非常简单的通用Windows应用程序。
应用程序应该向用户提供基本的网络信息,因此我想使用IPGlobalProperties
收集数据并打印 - 作为第一个示例 - 名为DomainName
Dim NetworkProperties As NetworkInformation.IPGlobalProperties
NetworkProperties = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties
textDomain.Text = NetworkProperties.DomainName
虽然在前两行代码中正确分配了属性,但第三行导致错误System.PlatformNotSupportedException: 'Operation is not supported on this platform.'
我在经典的Windows应用程序上尝试了相同的代码,它按预期工作,因此Universal应用程序不支持此操作吗?
如果是,我应该使用什么方法来获得有关网络的相同信息?
感谢您提供的任何帮助
卢卡
答案 0 :(得分:0)
首先,uwp app不支持IPGlobalProperties
类。由于.NET for UWP应用程序提供了一组托管类型,您可以使用它们来创建通用Windows平台应用程序,但不是全部。详情请参阅.NET for UWP apps。 System.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