2017-03-12 1 views
-1

J'écris une application Windows universelle très simple avec VB dans Visual Studio 2017. L'application devrait donner des informations de base sur le réseau à l'utilisateur, donc je voulais recueillir les données en utilisant IPGlobalProperties et imprimer - comme un premier exemple - le DomainName dans un TextBlock appelé textDomainObtenir IPGlobalProperties avec VB.net sur une application UWP

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

Bien que les propriétés sont correctement attribuées int les deux premières lignes de code, le résultat du troisième ligne dans l'erreur System.PlatformNotSupportedException: 'Operation is not supported on this platform.' J'ai essayé le même code sur une application Windows classique et cela fonctionne comme prévu, donc Cette opération n'est-elle pas supportée par les applications Universal? Si oui, quelle est la méthode que je devrais utiliser pour obtenir les mêmes informations sur le réseau?

Merci pour toute aide que vous pourriez fournir

Luca

+0

Pouvez-vous expliquer le -1? Un vote négatif sans explication ne présente aucun intérêt. Merci. – lucamauri

Répondre

0

Tout d'abord, IPGlobalProperties classe ne sont pas pris en charge dans l'application UWP. Since.NET pour les applications UWP fournit un ensemble de types gérés que vous pouvez utiliser pour créer des applications Universal Windows Platform, mais pas le tout. Détails s'il vous plaît référence .NET for UWP apps. System.Net namespace peut être utilisé dans l'application uwp mais IPGlobalProperties ne peut pas.

Deuxièmement, vous pouvez trouver des API équivalentes ou similaires dans l'application uwp. Par exemple, vous pouvez également trouver un NetworkInformation dans uwp qui appartient à l'espace de noms Windows.Networking.Connectivity. Mais l'appel des méthodes de cette classe n'est pas la même chose avec l'espace de noms System.Net.NetworkInformation.

Si vous souhaitez obtenir le nom de l'ordinateur ou le nom de domaine en tant que IPGlobalProperties, vous pouvez appeler la méthode GetHostNames(). Code comme suit:

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 
+0

Merci pour votre aide. Comme référence supplémentaire pour toute personne intéressée par ce sujet, je dirigerais également l'utilisateur vers la page https://docs.microsoft.com/en-us/uwp/api/windows.networking.hostname où la classe 'HostName' est expliquée. – lucamauri