아무도 다음 코드에서 모든 CA2202 경고를 제거하는 방법을 말해 줄 수 있습니까?
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();
}
}
경고 7 CA2202 : Microsoft.Usage : 'CryptoServices.Encrypt (string, byte [], byte [])'메서드에서 'cryptoStream'개체를 두 번 이상 삭제할 수 있습니다. System.ObjectDisposedException을 생성하지 않으려면 개체에 대해 Dispose를 두 번 이상 호출하면 안됩니다. : 줄 : 34
경고 8 CA2202 : Microsoft.Usage : 'CryptoServices.Encrypt (string, byte [], byte [])'메서드에서 'memoryStream'개체를 두 번 이상 삭제할 수 있습니다. System.ObjectDisposedException을 생성하지 않으려면 개체에 대해 Dispose를 두 번 이상 호출하면 안됩니다. : 줄 : 34, 37
이러한 경고를 보려면 Visual Studio Code Analysis가 필요합니다 (이는 C # 컴파일러 경고가 아님).
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification="BrainSlugs83 said so.")]
" using System.Diagnostics.CodeAnalysis;
-usings 블록에 " "문 이 있는지 확인하십시오 .