2015-09-30 16 views
6
string machineName = System.Environment.MachineName; 

Questo codice non funziona per me, il codice di errore 'Ambiente' non contiene una definizione per 'MachineName'Come ottenere il nome host locale in C# su una universal app di Windows 10

Sono utilizzando Visual Studio 2015 e Universal App con C#

Si prega di elencare anche lo spazio dei nomi che è necessario utilizzare quando si registra una risposta.

+1

solo indovinare - https://msdn.microsoft.com/en-us/library/windows/apps/windows.networking.connectivity.networkinformation. gethostnames.aspx? – quetzalcoatl

+0

Non sembra funzionare. Non riesco a trovare quella funzione nemmeno io uso il namespace Windows.Networking.Connectivity – Jerry

risposta

13

È necessario utilizzare NetworkInformation.GetHostNames.

var hostNames = Windows.Networking.Connectivity.NetworkInformation.GetHostNames(); 

Ma si noti che questo metodo restituirà più HostName s.

Nel mio caso, restituisce quattro HostName s, di cui DisplayName s sono MyComputerName, MyComputerName.local più due indirizzi IP.

Quindi credo che è probabilmente sicuro di fare -

using Windows.Networking; 
using Windows.Networking.Connectivity; 


var hostNames = NetworkInformation.GetHostNames(); 
var hostName = hostNames.FirstOrDefault(name => name.Type == HostNameType.DomainName)?.DisplayName ?? "???"; 
+1

Grazie, funziona. – Jerry

Problemi correlati