Следующий код генерирует предупреждение. Проблема в том, что нам нужен канал для чтения и записи. Как я могу безопасно утилизировать трубу?
предупреждение: CA2202: Microsoft.Usage: объект 'pipe' может быть размещен более одного раза в методе ClientConnection.qaz (). Во избежание генерации исключения System.ObjectDisposedException не следует вызывать метод Dispose для объекта более одного раза .: Строки: 465
void qaz()
{
const string THIS_SERVER = ".";
using (NamedPipeClientStream pipe = new NamedPipeClientStream(THIS_SERVER, this.Name,
PipeDirection.InOut,
PipeOptions.None))
{
using (StreamReader sr = new StreamReader(pipe))
{
string message = sr.ReadLine();
using (StreamWriter sw = new StreamWriter(pipe))
{
sw.WriteLine("ACK received");
}
}
}
}
Вам нужен анализ кода Visual Studio, чтобы увидеть эти предупреждения (это не предупреждения компилятора c #).
Проблема состоит в том, что StreamReader sr и StreamWriter sw оба утилизируют объектный канал.