Czy ktoś może mi powiedzieć, jak usunąć wszystkie ostrzeżenia CA2202 z następującego kodu?
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();
}
}
Ostrzeżenie 7 CA2202: Microsoft.Usage: Obiekt „cryptoStream” można usunąć więcej niż raz w metodzie „CryptoServices.Encrypt (string, byte [], byte [])”. Aby uniknąć generowania wyjątku System.ObjectDisposedException, nie należy wywoływać metody Dispose na obiekcie więcej niż jeden raz .: Wiersze: 34
Ostrzeżenie 8 CA2202: Microsoft.Usage: Obiekt „memoryStream” można usunąć więcej niż raz w metodzie „CryptoServices.Encrypt (string, byte [], byte [])”. Aby uniknąć generowania wyjątku System.ObjectDisposedException, nie należy wywoływać metody Dispose na obiekcie więcej niż jeden raz .: Lines: 34, 37
Potrzebujesz analizy kodu programu Visual Studio, aby wyświetlić te ostrzeżenia (nie są to ostrzeżenia kompilatora C #).
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification="BrainSlugs83 said so.")]
” - upewnij się, że using System.Diagnostics.CodeAnalysis;
w bloku użycia znajduje się wyrażenie „ ”.