Quando provo a smaltire un UdpClient, ho scoperto che è impossibile. Per il seguente:Dovrebbe essere smaltito un UdpClient?
UdpClient udpClient = new UdpClient();
udpClient.Dispose();
Visual Studio mostra un errore:
'System.Net.Sockets.UdpClient.Dispose(bool)' is inaccessible due to its protection level
questo significa che dovrei ereditare da UdpClient
ed esporre la Dispose
(Dal momento che sembra essere il consenso che whatever implements IDisposable should be disposed of)? C'è qualche ragione per cui non dovremmo usare la classe direttamente? O semplicemente non c'è niente da smaltire dopo aver chiamato Close
?
Anche se una dichiarazione fa lavoro - non è adatto durante l'ascolto.
Se si doveva ereditare da essa, la costru anche i tors sarebbero protetti, ma sono pubblici. [La documentazione] (http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.dispose.aspx) è decisamente fuorviante. – ClickRick
@ClickRick Grazie. – ispiro
'virtuale vuoto protetto UdpClient.Dispose (Boolean)' è in circolazione da .NET Framework 2.0 mentre il sovraccarico senza parametri 'public void Dispose()' è disponibile solo dal 4.6. Il tuo progetto ha come obiettivo il framework <4.6 in modo da vedere solo il metodo protetto – twj