Qualcuno può dirmi come rimuovere tutti gli avvisi CA2202 dal seguente codice?
public static byte[] Encrypt(string data, byte[] key, byte[] iv)
{
using(MemoryStream memoryStream = new MemoryStream())
{
using (DESCryptoServiceProvider cryptograph = new DESCryptoServiceProvider())
{
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptograph.CreateEncryptor(key, iv), CryptoStreamMode.Write))
{
using(StreamWriter streamWriter = new StreamWriter(cryptoStream))
{
streamWriter.Write(data);
}
}
}
return memoryStream.ToArray();
}
}
Avviso 7 CA2202: Microsoft.Usage: L'oggetto 'cryptoStream' può essere eliminato più di una volta nel metodo 'CryptoServices.Encrypt (string, byte [], byte [])'. Per evitare di generare un'eccezione System.ObjectDisposedException, non chiamare Dispose più di una volta su un oggetto .: Righe: 34
Avviso 8 CA2202: Microsoft.Usage: L'oggetto "memoryStream" può essere eliminato più di una volta nel metodo "CryptoServices.Encrypt (string, byte [], byte [])". Per evitare di generare un'eccezione System.ObjectDisposedException, non chiamare Dispose più di una volta su un oggetto .: Righe: 34, 37
È necessario Visual Studio Code Analysis per visualizzare questi avvisi (non sono avvisi del compilatore c #).
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification="BrainSlugs83 said so.")]
" - assicurati di avere una using System.Diagnostics.CodeAnalysis;
dichiarazione " " nel blocco degli utilizzi.