Я использую файловый поток и потоковый автор, чтобы написать небольшой текст в файле, который выдает мне предупреждение CA2202.
public void WritePIDToFile()
{
FileStream fh = null;
try
{
fh = new FileStream(HIMSHelper.ApplicationDirectory + "PID", FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
using (var sr = new StreamWriter(fh))
{
sr.Write(PID);
}
}
finally
{
if (fh != null)
{
fh.Dispose();//I got CA2202 here
}
}
}
Я уже пробовал решение здесь CA2202: не удалять объекты несколько раз
Можете ли вы дать мне какие-либо предложения? Пожалуйста.
Спасибо
using
закроетStreamWriter
, и это может также закрыть объектFileStream
. Даже если код выдаст ошибку в блокеusing
, объект(ы) все равно будет закрыт и удален. - person Tim   schedule 24.01.2016fh = null;
. - person   schedule 24.01.2016sr.Write(PID)
не смотрит на текущее значение переменнойfh
. Не может, у него нет к нему доступа. Вы передали старое значение с помощьюvar sr = new StreamWriter(fh)
, и это старое значение будет использоватьсяsr.Write(PID)
. - person   schedule 24.01.2016