2015-09-30 24 views
6
Bu kod benim için çalışmıyor
string machineName = System.Environment.MachineName; 

, hata kodu 'Çevre' ben 'MakineAdı'Windows 10 evrensel uygulama üzerinde C# yerel ana bilgisayar adını almak için

için bir tanım içermiyor nasıl Visual Studio 2015 ve C ile Evrensel Uygulamayı kullanarak C#

Lütfen ayrıca bir cevap gönderdiğinizde kullanmam gereken ad alanını da listeleyin.

+1

sadece tahmin. gethostnames.aspx? – quetzalcoatl

+0

Dosyan çalışmıyor gibi görünüyor. Bu işlevi, Windows.Networking.Connectivity ad alanını bile kullanamıyorum. – Jerry

cevap

13

NetworkInformation.GetHostNames'u kullanmanız gerekir.

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

Ama bu yöntem birden HostName s dönecektir unutmayın. Benim durumumda

, bu DisplayName s BilgisayarımınAdı, MyComputerName.local artı iki IP adresleri olmak üzere dört HostName s döndürür.

yüzden bunu yapmak muhtemelen güvenli olduğunu tahmin - https://msdn.microsoft.com/en-us/library/windows/apps/windows.networking.connectivity.networkinformation -

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


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

Teşekkürler, işe yarıyor. – Jerry