Quelqu'un peut-il me dire comment supprimer tous les avertissements CA2202 du code suivant?
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();
}
}
Avertissement 7 CA2202: Microsoft.Usage: L'objet 'cryptoStream' peut être supprimé plusieurs fois dans la méthode 'CryptoServices.Encrypt (string, byte [], byte [])'. Pour éviter de générer une exception System.ObjectDisposedException, vous ne devez pas appeler Dispose plus d'une fois sur un objet.: Lignes: 34
Avertissement 8 CA2202: Microsoft.Usage: L'objet 'memoryStream' peut être supprimé plusieurs fois dans la méthode 'CryptoServices.Encrypt (string, byte [], byte [])'. Pour éviter de générer une exception System.ObjectDisposedException, vous ne devez pas appeler Dispose plus d'une fois sur un objet: Lignes: 34, 37
Vous avez besoin de l'analyse du code Visual Studio pour voir ces avertissements (ce ne sont pas des avertissements du compilateur c #).
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification="BrainSlugs83 said so.")]
" - assurez-vous d'avoir une using System.Diagnostics.CodeAnalysis;
déclaration " " dans votre bloc d'utilisations.