2015-10-03 12 views
6

cerco di convertire Ip Address a uint:System.Net.IPAddress.Address' è obsoleto

IPAddress requstedIpAddress; 
uint requesteIpAddressUint = (uint)IPAddress.Parse(requstedIpAddress.ToString()).Address; 

e ottenuto questo avvertimento:

'System.Net.IPAddress.Address' è obsoleto: 'Questa proprietà è stata deprecata. È indirizzato alla famiglia. Utilizzare il metodo IPAddress.Equals per eseguire confronti.

Che cosa significa e dovrei usare un altro modo per farlo?

+0

Quali sono tutte le librerie importate? –

+2

L'indirizzo IPv6 non si adatta a 'uint'. – PetSerAl

+0

Possibile duplicato di [Come si analizza una stringa di indirizzo IP con un valore uint in C#?] (Http://stackoverflow.com/questions/36831/how-do-you-parse-an-ip-ad-ress-string- to-a-uint-value-in-c) –

risposta

5

L'avviso di ritiro indica che nel prossimo aggiornamento della libreria che ha definito IPAddress, non sarà più IPAddress.Address una proprietà. Quindi il tuo codice non riuscirà a compilare dopo il prossimo aggiornamento alla libreria.

Se si passa alla documentazione per IPAddress.Address, si nota che la proprietà è obsoleta e dovrebbe invece utilizzare IPAddress.GetAddressBytes.

Il disuso di IPAddress.Address è dovuta all'adozione di IPv6 che è di 128 bit, mentre C# tipo long, che è in realtà un System.Int64, è solo 64 bit.

+0

Quindi è meglio utilizzare IPAddress.GetAddressBytes, che dire se ho un indirizzo IPv ^? –

+0

Intendo IPv6 .... –

+0

'IPAddress.GetAddressBytes' restituisce' byte [] 'in modo che sia in grado di supportare l'indirizzo IP v4 e v6 e possibilmente iterazioni successive anche se ciò non è probabile per un po 'di tempo. –

Problemi correlati