次のコードからすべての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ブロックに" "ステートメントがあることを確認します。