Ai có thể cho tôi biết làm thế nào để loại bỏ tất cả các cảnh báo CA2202 khỏi mã sau đây?
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();
}
}
Cảnh báo 7 CA2202: Microsoft.Cách sử dụng: Đối tượng 'cryptoStream' có thể được xử lý nhiều lần trong phương thức 'CryptoServices.Encrypt (string, byte [], byte [])'. Để tránh tạo ra một System.ObjectDisposedException, bạn không nên gọi Dispose nhiều lần trên một đối tượng.: Lines: 34
Cảnh báo 8 CA2202: Microsoft.Cách sử dụng: Đối tượng 'memoryStream' có thể được xử lý nhiều lần trong phương thức 'CryptoServices.Encrypt (string, byte [], byte [])'. Để tránh tạo ra một System.ObjectDisposedException, bạn không nên gọi Dispose nhiều lần trên một đối tượng.: Lines: 34, 37
Bạn cần Phân tích mã Visual Studio để xem các cảnh báo này (đây không phải là cảnh báo trình biên dịch c #).
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification="BrainSlugs83 said so.")]
" - đảm bảo rằng bạn có using System.Diagnostics.CodeAnalysis;
câu lệnh "" trong khối usings của mình.