Remove nop use of Console.OpenStandardInput (#49)

This commit is contained in:
Stephen Toub 2025-03-09 06:03:13 -04:00 • committed by GitHub
commit e187ebacc4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -105,48 +105,46 @@ public sealed class StdioServerTransport : TransportBase, IServerTransport
while (!cancellationToken.IsCancellationRequested) while (!cancellationToken.IsCancellationRequested)
{ {
_logger.TransportWaitingForMessage(EndpointName); _logger.TransportWaitingForMessage(EndpointName);
using (Console.OpenStandardInput())
var reader = Console.In;
var line = await reader.ReadLineAsync(cancellationToken).ConfigureAwait(false);
if (line == null)
{ {
var reader = Console.In; _logger.TransportEndOfStream(EndpointName);
var line = await reader.ReadLineAsync(cancellationToken).ConfigureAwait(false); break;
if (line == null) }
{
_logger.TransportEndOfStream(EndpointName);
break;
}
if (string.IsNullOrWhiteSpace(line)) if (string.IsNullOrWhiteSpace(line))
{ {
continue; continue;
} }
_logger.TransportReceivedMessage(EndpointName, line); _logger.TransportReceivedMessage(EndpointName, line);
try try
{
var message = JsonSerializer.Deserialize<IJsonRpcMessage>(line, _jsonOptions);
if (message != null)
{ {
var message = JsonSerializer.Deserialize<IJsonRpcMessage>(line, _jsonOptions); string messageId = "(no id)";
if (message != null) if (message is IJsonRpcMessageWithId messageWithId)
{ {
string messageId = "(no id)"; messageId = messageWithId.Id.ToString();
if (message is IJsonRpcMessageWithId messageWithId)
{
messageId = messageWithId.Id.ToString();
}
_logger.TransportReceivedMessageParsed(EndpointName, messageId);
await WriteMessageAsync(message, cancellationToken).ConfigureAwait(false);
_logger.TransportMessageWritten(EndpointName, messageId);
}
else
{
_logger.TransportMessageParseUnexpectedType(EndpointName, line);
} }
_logger.TransportReceivedMessageParsed(EndpointName, messageId);
await WriteMessageAsync(message, cancellationToken).ConfigureAwait(false);
_logger.TransportMessageWritten(EndpointName, messageId);
} }
catch (JsonException ex) else
{ {
_logger.TransportMessageParseFailed(EndpointName, line, ex); _logger.TransportMessageParseUnexpectedType(EndpointName, line);
// Continue reading even if we fail to parse a message
} }
} }
catch (JsonException ex)
{
_logger.TransportMessageParseFailed(EndpointName, line, ex);
// Continue reading even if we fail to parse a message
}
} }
_logger.TransportExitingReadMessagesLoop(EndpointName); _logger.TransportExitingReadMessagesLoop(EndpointName);
} }