Nello script #39 abbiamo visto come la classe DeviceNetworkInformation introduca informazioni dettagliate per conoscere le caratteristiche della rete a cui il device è collegato. Tale classe dispone anche dell'evento NetworkAvailabilityChanged, che si scatena quando la disponibilità della rete cambia.
Il parametro NetworkNotificationEventArgs passato al gestore dell'evento dispone delle proprietà NetworkInterface e NotificationType con le quali possiamo accedere ad un ricco insieme di enumeratori che descrivono nel particolare lo stato corrente.
DeviceNetworkInformation.NetworkAvailabilityChanged += (object obj, NetworkNotificationEventArgs args) => { NetworkInterfaceInfo interfaceInfo = args.NetworkInterface; string data2 = string.Empty; data2 += String.Format("{0} InterfaceName: {1}", Environment.NewLine, interfaceInfo.InterfaceName); data2 += String.Format("{0} Description: {1}", Environment.NewLine, interfaceInfo.Description); data2 += String.Format("{0} Bandwidth: {1}", Environment.NewLine, interfaceInfo.Bandwidth); data2 += String.Format("{0} InterfaceState: {1}", Environment.NewLine, interfaceInfo.InterfaceState); //ConnectState data2 += String.Format("{0} InterfaceType: {1}", Environment.NewLine, interfaceInfo.InterfaceType); //NetworkInterfaceType data2 += String.Format("{0} InterfaceSubtype: {1}", Environment.NewLine, interfaceInfo.InterfaceSubtype); //NetworkInterfaceSubType data2 += String.Format("{0} Characteristics: {1}", Environment.NewLine, interfaceInfo.Characteristics); //NetworkCharacteristics data2 += String.Format("{0} NotificationType: {1}", Environment.NewLine, args.NotificationType); //NetworkNotificationType MessageBox.Show(data2); };
Questo evento può risultare molto utile per quelle applicazioni il cui funzionamento è strettamente vincolato alla presenza della rete dati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Tailwind CSS all'interno di React: installazione
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Utilizzare le collection expression in C#
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Installare le Web App site extension tramite una pipeline di Azure DevOps
Evitare il flickering dei componenti nel prerender di Blazor 8
Generare file per il download da Blazor WebAssembly
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Disabilitare automaticamente un workflow di GitHub (parte 2)
Elencare le container images installate in un cluster di Kubernetes
Gestire domini wildcard in Azure Container Apps
Verificare la provenienza di un commit tramite le GitHub Actions