我正在 Visual Studio 2017 中使用 VB 编写一个非常简单的通用 Windows 应用程序。
该应用程序应该向用户提供基本的网络信息,因此我想使用以下方式收集数据IPGlobalProperties
并打印——作为第一个例子——DomainName
在一个名为的 TextBlock 中textDomain
Dim NetworkProperties As NetworkInformation.IPGlobalProperties
NetworkProperties = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties
textDomain.Text = NetworkProperties.DomainName
虽然属性在前两行代码中正确分配,但第三行导致错误System.PlatformNotSupportedException: 'Operation is not supported on this platform.'
我在经典 Windows 应用程序上尝试了相同的代码,它按预期工作,那么通用应用程序不支持此操作吗?
如果是,我应该使用什么方法来获取相同的网络信息?
感谢您提供的任何帮助
Luca
首先,IPGlobalProperties https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipglobalproperties(v=vs.110).aspxuwp 应用程序不支持类。由于 .NET for UWP 应用程序提供了一组托管类型,您可以使用它们来创建通用 Windows 平台应用程序,但不是全部。详情请参考适用于 UWP 应用的 .NET https://msdn.microsoft.com/en-us/library/windows/apps/mt185501.aspx. System.Net https://msdn.microsoft.com/en-us/library/windows/apps/mt185489.aspx命名空间可以在 uwp 应用程序中使用,但是IPGlobalProperties
cannot.
其次,您可以在 uwp 应用程序中找到等效或相似的 API。例如,您还可以找到NetworkInformation https://learn.microsoft.com/en-us/uwp/api/windows.networking.connectivity.networkinformation在uwp中属于Windows.Networking.Connectivity
命名空间。但调用该类的方法与调用该类的方法并不相同System.Net.NetworkInformation https://msdn.microsoft.com/en-us/library/system.net.networkinformation(v=vs.110).aspx命名空间。
如果你想获取计算机名或域名IPGlobalProperties
做了,你可以调用GetHostNames() https://learn.microsoft.com/en-us/uwp/api/windows.networking.connectivity.networkinformation#Windows_Networking_Connectivity_NetworkInformation_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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)