У меня такой класс...
public class Class1
{
public Class1()
{
byte[] plainText = new byte[1024];
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
csEncrypt.Write(plainText, 0, plainText.Length);
csEncrypt.FlushFinalBlock();
csEncrypt.Flush();
encrypted = msEncrypt.ToArray();
}
}
}
public ICryptoTransform encryptor { get; set; }
public byte[] encrypted { get; set; }
}
Анализ кода выдает следующее предупреждение. Не удаляйте объекты несколько раз.
http://msdn.microsoft.com/en-us/library/ms182334.aspx.
Я не могу понять эту строку в приведенной выше статье [Пример раздела]... «Вложенные операторы использования (использование в Visual Basic) могут привести к нарушению предупреждения CA2202. Если ресурс IDisposable вложенного внутреннего оператора использования содержит ресурс оператора внешнего использования метод Dispose вложенного ресурса освобождает содержащийся ресурс. Когда возникает такая ситуация, метод Dispose внешнего оператора использования пытается удалить свой ресурс во второй раз».
CryptoStream
разместит свой базовый поток? Он может мне понадобиться для дальнейшего использования. Я считаю, что это плохой дизайн, который msft выбрал дляIDisposable
. - person Sriram Sakthivel   schedule 07.03.2014