Alguém pode me dizer como remover todos os avisos CA2202 do código a seguir?
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();
}
}
Aviso 7 CA2202: Microsoft.Usage: O objeto 'cryptoStream' pode ser descartado mais de uma vez no método 'CryptoServices.Encrypt (string, byte [], byte [])'. Para evitar a geração de uma System.ObjectDisposedException, você não deve chamar Dispose mais de uma vez em um objeto .: Lines: 34
Aviso 8 CA2202: Microsoft.Usage: O objeto 'memoryStream' pode ser descartado mais de uma vez no método 'CryptoServices.Encrypt (string, byte [], byte [])'. Para evitar a geração de System.ObjectDisposedException, você não deve chamar Dispose mais de uma vez em um objeto .: Linhas: 34, 37
Você precisa do Visual Studio Code Analysis para ver esses avisos (não são avisos do compilador c #).
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification="BrainSlugs83 said so.")]
" - certifique-se de ter uma using System.Diagnostics.CodeAnalysis;
declaração " " em seu bloco de uso.