Скажем, у меня есть следующий код:Располагая TcpClient при наличии ссылки на NetworkStream
public static Client Connect(string hostname, int port, bool useSsl)
{
TcpClient tcpClient = new TcpClient(hostname, port);
if (!useSsl)
{
return new Client(tcpClient.GetStream());
}
SslStream sslStream = new SslStream(tcpClient.GetStream());
sslStream.AuthenticateAsClient(hostname);
return new Client(sslStream);
}
Когда я компилирую это, анализ кода говорит мне, что я должен распоряжаться tcpClient
до ссылки выходит за рамки. Проблема в том, что мне нужно использовать экземпляр базового потока дальше, и я не могу распоряжаться tcpClient
здесь. Одновременно я не хочу хранить ссылку на tcpClient
где-нибудь, чтобы позже распоряжаться, поскольку мне нужен только поток. Какое правильное решение здесь? Благодарю.
, что это проблема с сохранением ссылки на 'tcpClient'? – Yahia
теперь вы хотите вернуть SSLStream или Client, если это изменит возврат в моем примере и подписи метода. – MethodMan
@Yahia Предполагается, что существует множество экземпляров «Клиент». Однако для класса 'Client' нужен только экземпляр' Stream' только в качестве параметра, и я хочу оставить его независимым от класса 'TcpClient'. – eigenein